The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Релиз FreeBSD 11.3, opennews (??), 09-Июл-19, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


12. "Релиз FreeBSD 11.3"  +9 +/
Сообщение от qwerty123 (??), 09-Июл-19, 23:04 
>И конфиги простые как двери

----------------------------
#!/bin/sh
#
# $FreeBSD: head/mail/exim/files/exim.in 340872 2014-01-24 00:14:07Z mat $
#

# PROVIDE: mail
# REQUIRE: LOGIN
# KEYWORD: shutdown
#    we make mail start late, so that things like .forward's are not
#    processed until the system is fully operational

#
# Add the following lines to /etc/rc.conf to enable exim:
#
#exim_enable="YES"
#
# See exim(8) for flags
#

. /etc/rc.subr

name=exim
rcvar=exim_enable

command=/usr/local/sbin/exim
pidfile=/var/run/exim.pid
required_dirs=/var/log/exim
required_files=/usr/local/etc/exim/exim.conf

#start_precmd=start_precmd
stop_postcmd=stop_postcmd

extra_commands="reload"

stop_postcmd()
{
  rm -f $pidfile
}

# read settings, set default values
load_rc_config $name
: ${exim_enable="NO"}
: ${exim_flags="-bd -q30m"}

run_rc_command "$1"
---------


Что сложного?

Но проблема в том, что тебя лишили выбора, поэтому остается лишь петь песню как все хорошо.

Ответить | Правка | Наверх | Cообщить модератору

14. "Релиз FreeBSD 11.3"  –5 +/
Сообщение от Аноним (-), 09-Июл-19, 23:10 
А ваше навязывание баш-портянок и init, как единственной системы инициализации, не подпадает под ограничение свободы выбора?
Ответить | Правка | Наверх | Cообщить модератору

24. "Релиз FreeBSD 11.3"  +4 +/
Сообщение от qwerty123 (??), 09-Июл-19, 23:24 
>init, как единственной системы инициализации

$ man init

DESCRIPTION
     The init utility is the last stage of the boot process.

init вообще ни разу не "система инициализации" чего-то.

в BSD это простой процесс-демон, запускающий /etc/rc и getty

вы вообще чего "инициализировать" собрались?


Ответить | Правка | Наверх | Cообщить модератору

39. "Релиз FreeBSD 11.3"  +7 +/
Сообщение от анонн (ok), 10-Июл-19, 00:00 
> А ваше навязывание баш-портянок
> #!/bin/sh

Это не симлинк на баш, как привыкли линухоиды. Я знаю, в это сложно поверить, но баш там вообще нет в базовой установке!
/bin/sh - это действительно минимальный интерпретатор sh, без тонн интерактивных свистелок и перделок:


cloc /usr/src/bin/sh/ --exclude-dir=tests
      68 text files.
      68 unique files.                              
       9 files ignored.
Language                             files          blank        comment           code

C                                       26           1576           2233          11803
C/C++ Header                            24            139            916            563
make                                     1             17              7             48

SUM:                                    60           1774           3442          12755

А теперь смотрим баш:
https://www.openhub.net/p/bash/analyses/latest/languages_sum...
> Total Lines :    292,087        Code Lines :    224,357    

системд:
https://www.openhub.net/p/systemd/analyses/latest/languages_...
> Total Lines :    634,513        Code Lines :    469,586    

Вот да, если выбирать только между bash и системд в качестве интерпретатора конфигов, то специализированный системд смотрится очень даже ничего. Но все же это какой-то странный выбор, в лучших традициях
> Опустим эту газету в серную кислоту, а ТВ-парк в дистиллированую воду

(c)

Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

105. "Релиз FreeBSD 11.3"  –1 +/
Сообщение от Debian User (?), 10-Июл-19, 11:14 
В нормальных системах используют http://gondor.apana.org.au/~herbert/dash/
Но таки да, Systemd и тут впилили.
Ответить | Правка | Наверх | Cообщить модератору

237. "Релиз FreeBSD 11.3"  +/
Сообщение от Аноним (237), 11-Июл-19, 01:06 
> В нормальных системах используют http://gondor.apana.org.au/~herbert/dash/
> Но таки да, Systemd и тут впилили.

Где впилили? В dash или в девуан? Не вижу его ни там, ни там.

Ответить | Правка | Наверх | Cообщить модератору

245. "Релиз FreeBSD 11.3"  +/
Сообщение от Аноним (245), 11-Июл-19, 11:06 
В Debian, откуда он и перекочевал в Devuan.
Но это было до systemd, впрочем dash в Debian никуда и после того не делся. И даже вполне себе используется.
Ответить | Правка | Наверх | Cообщить модератору

16. "Релиз FreeBSD 11.3"  –1 +/
Сообщение от Фноним (?), 09-Июл-19, 23:12 
Никого не лишили, обратную совместимость с портянками не выпилили, если хочется вот так, по старинке.

Хотя с юнитом все тоже наглядно, более чем:

[Unit]
Description=Exim Mail Transport Agent
After=network.target
Conflicts=sendmail.service postfix.service

[Service]
PrivateTmp=true
Environment=QUEUE=1h
EnvironmentFile=-/etc/sysconfig/exim
ExecStartPre=-/usr/libexec/exim-gen-cert
ExecStart=/usr/sbin/exim -bd -q${QUEUE}

[Install]
WantedBy=multi-user.target

Ответить | Правка | К родителю #12 | Наверх | Cообщить модератору

21. "Релиз FreeBSD 11.3"  +/
Сообщение от qwerty123 (??), 09-Июл-19, 23:18 
>Хотя с юнитом все тоже наглядно, более чем

Угу. До тех пор пока отлаживать не надо. И вся хрень systemd в корку не падает, не пойми где.

Ответить | Правка | Наверх | Cообщить модератору

23. "Релиз FreeBSD 11.3"  +/
Сообщение от Фноним (?), 09-Июл-19, 23:23 
Ну ты хоть пробовал, серьезно?

Отладка юнита с подробным логированием в journalctl, как stderr вызываемых комманд, так и самого механизма systemctl, который тоже подскажет что сделано не так.

Ну вот прям наоборот же все.

Ответить | Правка | Наверх | Cообщить модератору

28. "Релиз FreeBSD 11.3"  +4 +/
Сообщение от qwerty123 (??), 09-Июл-19, 23:30 
> Ну ты хоть пробовал, серьезно?

Чувак, не поверишь, пишу всякие программы. Портируемые.

>Отладка юнита с подробным логированием в journalctl, как stderr вызываемых комманд...

Пусть оно идет в ту дырку, куда не светит солнце.
Вся эта развесистая байда systemd с линками и опциями.

Ответить | Правка | Наверх | Cообщить модератору

32. "Релиз FreeBSD 11.3"  +/
Сообщение от Фноним (?), 09-Июл-19, 23:40 
Так тебя ж не заставляют ей пользоваться, раз не по душе.

Штуки разные, подходы тоже.

Обе имеют право на жизнь.
Я вот программы не пишу, только сопровождаю их работу на серверах. Скрипты автоматизации - да, в том числе разумеется и на баше, много лет люблю баш.

Ну а живётся гораздо спокойней и веселей когда постепенно перевел все сервера на rhel7 и системд.

В моем конкретном случае все так, в твоём может быть по другому.

Но я в свою очередь не заявлял, что альтернативы системд все поголовно гуано, да и знать мне их тоже по роду службы необходимо)

Ответить | Правка | Наверх | Cообщить модератору

95. "Релиз FreeBSD 11.3"  –2 +/
Сообщение от qwerty123 (??), 10-Июл-19, 08:18 
>Скрипты автоматизации - да, в том числе разумеется и на баше

"Скрипты автоматизации на баше"

Закопать. Вместе со "скриптами автоматизации" и "башем".

Ответить | Правка | Наверх | Cообщить модератору

151. "Релиз FreeBSD 11.3"  +/
Сообщение от Фноним (?), 10-Июл-19, 14:51 
За что ты так скрипты на баше?

То что в C:/Windows/system32 лазать не умеют и какой-нибудь regsrv не вызовут?

Ответить | Правка | Наверх | Cообщить модератору

219. "Релиз FreeBSD 11.3"  +/
Сообщение от qwerty123 (??), 10-Июл-19, 22:00 
>За что ты так скрипты на баше?

Я так ласково "автоматизаторов на баше".


Ответить | Правка | Наверх | Cообщить модератору

112. "Релиз FreeBSD 11.3"  +/
Сообщение от Аноним (110), 10-Июл-19, 11:46 
> Никого не лишили, обратную совместимость с портянками не выпилили, если хочется вот так, по старинке.

так оно так и сделано практически во всех дистрах, кроме арча.
юниты, фигуниты - а легаси баш-портянки стартуемы системдой!
супер.

Ответить | Правка | К родителю #16 | Наверх | Cообщить модератору

29. "Релиз FreeBSD 11.3"  +4 +/
Сообщение от zzz (??), 09-Июл-19, 23:33 
Ну это на фрюхе всё просто, я когда в первый раз увидел, как регулируется порядок запуска и остановки служб в линуксе, слегка ошалел от пиршества идиотизма человека, который это придумал.
Ответить | Правка | К родителю #12 | Наверх | Cообщить модератору

59. "Релиз FreeBSD 11.3"  –4 +/
Сообщение от Dapredator (ok), 10-Июл-19, 01:31 
> pidfile=/var/run/exim.pid

Капец, пид файлы... А если с ним что-то не так? Как процесс останавливать будешь, чудо ты из семидесятых годов :)

Ответить | Правка | К родителю #12 | Наверх | Cообщить модератору

63. "Релиз FreeBSD 11.3"  +6 +/
Сообщение от Anonymouse (?), 10-Июл-19, 01:52 
С тобой что-то не так, к сожалению.
Смузи головного мозга и барбершоп подбородка мешает пользоваться тектовыми файлами, сочувствую.

Ответить | Правка | Наверх | Cообщить модератору

108. "Релиз FreeBSD 11.3"  –2 +/
Сообщение от Dapredator (ok), 10-Июл-19, 11:27 
Т.е. ответить "как остановить процесс" ты не модешь? ОК :-)
Ответить | Правка | Наверх | Cообщить модератору

149. "Релиз FreeBSD 11.3"  +2 +/
Сообщение от тигарэтоя (?), 10-Июл-19, 14:49 
вот и выросло поколение "девопсов" которые ничего про ps(1) не слыхивали... ;(
Ответить | Правка | Наверх | Cообщить модератору

153. "Релиз FreeBSD 11.3"  +/
Сообщение от Andrey Mitrofanov_N0 (??), 10-Июл-19, 14:57 
> вот и выросло поколение "девопсов" которые ничего про ps(1) не слыхивали... ;(

Слепцы!

Ответить | Правка | Наверх | Cообщить модератору

158. "Релиз FreeBSD 11.3"  –3 +/
Сообщение от Dapredator (ok), 10-Июл-19, 15:11 
> вот и выросло поколение "девопсов" которые ничего про ps(1) не слыхивали... ;(

Дэбил, тебе ps вернёт не только твой процесс, но ещё с десяток процессов с таким же именем из контейнеров.

Ответить | Правка | К родителю #149 | Наверх | Cообщить модератору

160. "Релиз FreeBSD 11.3"  +4 +/
Сообщение от тигарэтоя (?), 10-Июл-19, 15:24 
начнем с того, что дэбил это, прежде всего, тот, кто вовремя не достал, породив девопсика (тупого, кстати) под ником Dapredator.
продолжим тем, что смысла примерно 0 продолжать, ибо идиот даже manpage не открывал, видимо, не обучают этому в ютубе/хабрахабаре/стековерфлоу. или где там нонешние девопсики обучаются.
Ответить | Правка | Наверх | Cообщить модератору

173. "Релиз FreeBSD 11.3"  –3 +/
Сообщение от Dapredator (ok), 10-Июл-19, 16:54 
> что смысла примерно 0 продолжать

Каждый раз, когда кто-то сливается так и не осилив ответить, так как же он однозначно может вычислить pid конкретного процесса, не убив при этом десяток точно таких же процессов в контейнерах, я удивляюсь. Зачем вы пишите столько много слов?

Можно же просто написать: "да, оказывается я не знаю как однозначно вычислить pid одного конкретного процесса, сливаюсь" :-) Тут ничего страшного нет.


Подумаешь, ну бывает, за неимением опыта обгадился и оказалось, что всю жизнь не знал, что не так-то это и просто, вычислить правильный pid. Надо достойно уметь признаться в этом, что тут такого? :-)

Ответить | Правка | Наверх | Cообщить модератору

174. "Релиз FreeBSD 11.3"  +1 +/
Сообщение от тигарэтоя (?), 10-Июл-19, 17:04 
ладно, для тебя сделаю исключение и [немного] задам направление мышления, если есть чем, конечно. Нет уверенности в том, что делаю это не зря, но все же.
у тебя тот же "демон" (ты ngx там где-то выше/ниже упоминал) имеет "родителя".
Смузехлеб способен из нескольких найти нужный, если "pid файл удалили или испортили"?
Ну же,  верни мне веру в миллениалов.
Ответить | Правка | Наверх | Cообщить модератору

178. "Релиз FreeBSD 11.3"  –4 +/
Сообщение от Dapredator (ok), 10-Июл-19, 17:11 
> пособен из нескольких найти нужный, если "pid файл удалили или испортили"?

Ага, ага. И сразу, чтобы подтвердить, что ты не п***абол, пример того, как это реализовано в любом существующем пакете любого Linux дистрибутива из top50 с distrowatch? Или так никто не делает и ты чисто покукаретизировать вышел?


P.S. :-)

Ответить | Правка | Наверх | Cообщить модератору

193. "Релиз FreeBSD 11.3"  +/
Сообщение от тигарэтоя (?), 10-Июл-19, 17:58 
>> пособен из нескольких найти нужный, если "pid файл удалили или испортили"?
> Ага, ага. И сразу, чтобы подтвердить, что ты не п***абол, пример того,
> как это реализовано в любом существующем пакете любого Linux дистрибутива из
> top50 с distrowatch? Или так никто не делает и ты чисто
> покукаретизировать вышел?

какой пакет, какой топ50, какой линакс?
у тебя был глупейший, с т.з. человека разумного вопрос - как найти (убить шоб?) процесс, если пид кто-то попортил, тебе ответили, что есть цельная утилита - ps называется.

что за наркоманию ты сейчас пропагандировать начал? у меня тут рядом сидит адепт системг, дык он как-то поадекватнее многократно.

ниже ты там не себя часом имел ввиду рассказывая за "десятки тысяч контейнеров" и величая кого-то админом локалхоста ?
а то как-бы тебе это сказать... проблемы _СИЛЬНО_ серьезнее чем ты тут пытаешься "решить"  возникают у людей, которые и правда работают уже при подходе к первому десятку.

> P.S. :-)

да, спасибо, ты сделал мой день

Ответить | Правка | Наверх | Cообщить модератору

194. "Релиз FreeBSD 11.3"  –3 +/
Сообщение от Dapredator (ok), 10-Июл-19, 18:00 
> цельная утилита - ps называется.

Да да, только вот никто пока так и не рассказал, как же определить pid нужного nginx, а не того, который в одном из пяти контейнеров на том же хосте :-)

Ответить | Правка | К родителю #193 | Наверх | Cообщить модератору

242. "Релиз FreeBSD 11.3"  +2 +/
Сообщение от Andrey Mitrofanov_N0 (??), 11-Июл-19, 09:05 
>> цельная утилита - ps называется.
> Да да, только вот никто пока так и не рассказал, как же
> определить pid нужного nginx, а не того, который в одном из
> пяти контейнеров на том же хосте :-)

У взрослых спросить.  Мариванна-восптательница или бородатый одмин подотрут твои сопли, как обычно.  Громче кричи "уа!"

Ответить | Правка | К родителю #194 | Наверх | Cообщить модератору

196. "Релиз FreeBSD 11.3"  –5 +/
Сообщение от Dapredator (ok), 10-Июл-19, 18:05 
Давай чтобы голословным не быть, вот тебе реальный ps с реального сервера.

root@XXX:~# ps ax | grep sssd_pam
15620 ?        S      0:02 /usr/libexec/sssd/sssd_pam --uid 0 --gid 0 --debug-to-files
16829 ?        S      0:02 /usr/libexec/sssd/sssd_pam --uid 0 --gid 0 --debug-to-files
28421 ?        S      0:02 /usr/libexec/sssd/sssd_pam --uid 0 --gid 0 --debug-to-files
28499 ?        S      0:02 /usr/libexec/sssd/sssd_pam --uid 0 --gid 0 --debug-to-files
28947 ?        S      0:03 /usr/libexec/sssd/sssd_pam --uid 0 --gid 0 --debug-to-files


Дано: Есть hypervisor с 4 контенерами. И на гипервизоре и в контейнерах крутиться sssd демон, который авторизует юзеров из LDAP. Какой из вышеперечисленных процессов работает на гипервизоре, а какой в контейнерах? :-)

Задача: написать init скрипт, который рестартанёт нужный sssd_pam

Ответить | Правка | К родителю #193 | Наверх | Cообщить модератору

223. "Релиз FreeBSD 11.3"  –1 +/
Сообщение от qwerty123 (??), 10-Июл-19, 22:18 
>И на гипервизоре и в контейнерах крутиться sssd демон

Чувак, это тема про FreeBSD. В ней нет контейнеров.

А для отличить процессы в jails есть JID

# ps -ax -J1 | grep /sshd
27061  -  IsJ    0:00.01 /usr/sbin/sshd

# ps -ax -J0 | grep /sshd
80237  -  Is       0:05.58 /usr/sbin/sshd


Да, контейнеры для Linux местами через одно место. С чем и поздравляю.

Ответить | Правка | К родителю #196 | Наверх | Cообщить модератору

228. "Релиз FreeBSD 11.3"  +2 +/
Сообщение от Дон Ягон (ok), 10-Июл-19, 22:39 
> Есть hypervisor с 4 контенерами. И на гипервизоре и в контейнерах крутиться sssd демон, который авторизует юзеров из LDAP. Какой из вышеперечисленных процессов работает на гипервизоре, а какой в контейнерах? :-)

Ты не очень умный, поэтому я тебе ещё раз расскажу.

1) В цикле перебираешь пиды
в теле цикла:
2.а) делаешь grep -q $needed_cgroup /proc/$PID/cgroup && kill $PID
2.б) делаешь ps -h -o pidns -p $PID | grep -q $needed_ns && kill $PID

(в зависимости от, вместо pidns могут быть другие неймспейсы)

Знания о том, в какой cgroup'е или неймспейсе ты запускаешь должно сохранять то, что запускает контейнеры.
Это так просто! Но ты продолжай утверждать, что без systemd жизни нет, ага.
Уровень своих знаний ты уже показал, когда предъявил юнит "для запуска openvpn", который на самом деле запускает /bin/true.

Ответить | Правка | К родителю #196 | Наверх | Cообщить модератору

246. "Релиз FreeBSD 11.3"  +1 +/
Сообщение от тигарэтоя (?), 11-Июл-19, 11:09 
> 1) В цикле перебираешь пиды
> в теле цикла:
> 2.а) делаешь grep -q $needed_cgroup /proc/$PID/cgroup && kill $PID
> 2.б) делаешь ps -h -o pidns -p $PID | grep -q $needed_ns
> && kill $PID
> (в зависимости от, вместо pidns могут быть другие неймспейсы)

ты сейчас вот рассказал ему о наличию у ps ключей отличных от 'ax'. зачем? веришь в него или считаешь, что эта информация будет полезной для более адекватных девопсиков?

Ответить | Правка | К родителю #228 | Наверх | Cообщить модератору

257. "Релиз FreeBSD 11.3"  +/
Сообщение от Дон Ягон (ok), 11-Июл-19, 14:37 
> ты сейчас вот рассказал ему о наличию у ps ключей отличных от 'ax'. зачем? веришь в него или считаешь, что эта информация будет полезной для более адекватных девопсиков?

Второе.

Ответить | Правка | К родителю #246 | Наверх | Cообщить модератору

182. "Релиз FreeBSD 11.3"  +1 +/
Сообщение от Школьник (ok), 10-Июл-19, 17:17 
Тебе - вернет, а мне не вернет, т.к. я под нормальной ОС сижу.
Ответить | Правка | К родителю #158 | Наверх | Cообщить модератору

188. "Релиз FreeBSD 11.3"  –6 +/
Сообщение от Dapredator (ok), 10-Июл-19, 17:25 
Это потому, что ты школьник-админ локалхоста. А люди иногда работают, иногда поддерживают железо, на котором крутятся десятки тысяч контейнеров на ОС, на которой работает 99% интернета.

Такое бывает, прикинь :-)

Ответить | Правка | Наверх | Cообщить модератору

209. "Релиз FreeBSD 11.3"  +/
Сообщение от Школьник (ok), 10-Июл-19, 19:01 
На нетфликс где-то процентов 30 всего трафика США приходится. Подозреваю, что обеспечить всех своих клиентов такими объемами информации, да чтоб еще не тормозило - это задача на порядок или на два более сложная, чем те, что решаешь ты в том месте, где тебя еще по недоразумению держат.

Ключевой вопрос здесь - как они, бедняги, в netflix демонов-то своих останавливают без systemd ?

Ответить | Правка | Наверх | Cообщить модератору

217. "Релиз FreeBSD 11.3"  +/
Сообщение от Аноним (7), 10-Июл-19, 21:52 
Сравни зарплаты девопсов и аникеев, и тогда поймёшь почему "поколение вырасло". И посмотри какую работу они выполняют, тогда поймёшь за что им платят эту зарплату.
Ответить | Правка | К родителю #149 | Наверх | Cообщить модератору

244. "Релиз FreeBSD 11.3"  +1 +/
Сообщение от тигарэтоя (?), 11-Июл-19, 11:04 
> Сравни зарплаты девопсов и аникеев, и тогда поймёшь почему "поколение вырасло". И
> посмотри какую работу они выполняют, тогда поймёшь за что им платят
> эту зарплату.

у нас, видимо, разные понятия о "эникей" и "девопс".
девопсы, которые вокруг меня, по умениям близки к олдскульным админам (тем, которые и СУБД подтюнить могли (щас это громким именем dba называется), тем, которые обслуживали пачки машин без ансибла/шефа/паппета/тд еще до появления оных - "портянками" на шелл либо вообще на мейкфайлах, тем, которые запускали top и уже понимали в какую сторону нужно смотреть пристальнее при "сервер тормозит"). получают они, соответственно, хорошо
а типичный "девопс" из интернета (вон даже выше по треду яркий представитель имеется) способен:
* (с ошибками и за полдня) написать юнит-файл из 10 строк
* спросить/прочесть ответ на стековерфлоу или подобных (и это еще на самый плохой вариант)
* поставить-запустить htop и с умным видом фтыкать в терминал пока проблема сама не решится
* при помощи ютубчика настроить ELK и пищать на форумах какой он клевый

вместо нормальных инструментов эти индивидуумы, зачастую, предпочитают мониторить графаной, как отличительная особенность их
а весь "траблшутинг" заключается в:
1 "перезапустить контейнер" (если PID какой-нибудь поганец не затер то даже без ребута ноды :trollface: ).
2. если п.1 не помог - дать больше ресурсов
3. а) если и п.2 не помог - обучаются пользоваться ресурсами типа translate.google.com и идут на стековерфлоу.
б) идут к более сообразительному коллеге со своей печалью.

эникеи же просто мальчики, которые компы-ноуты таскают по этажам, картриджи меняют, проводочки протягивают и прочее.
как по мне, так они делают сильно более полезную работу, нежели  Dapredator-о подобные. И навредить своей работой способны не так сильно.

Ответить | Правка | Наверх | Cообщить модератору

68. "Релиз FreeBSD 11.3"  +1 +/
Сообщение от анонн (ok), 10-Июл-19, 02:45 
>> pidfile=/var/run/exim.pid
> Капец, пид файлы...

Дышите глубоко, приготовьте огнетушитель
https://www.freedesktop.org/software/systemd/man/systemd.ser...
> PIDFile=
> Takes a path referring to the PID file of the service.
> Usage of this option is recommended for services where Type= is set to forking.
> The service manager will read the PID of the main process of the service from this file after start-up of the service.

и
> If set to forking, it is expected that the process configured with ExecStart= will call fork() as part of its start-up
> If this setting is used, it is recommended to also use the PIDFile= option, so that systemd can reliably identify the main process of the service.
> А если с ним что-то не так? Как процесс
> останавливать будешь, чудо ты из семидесятых годов :)

Что именно там "не так"? Вы же в курсе, что pid file обычно пишет сам демон?

Ответить | Правка | К родителю #59 | Наверх | Cообщить модератору

84. "Релиз FreeBSD 11.3"  –3 +/
Сообщение от souryogurt (ok), 10-Июл-19, 04:53 
Запись и чтение pid файла при старте вызывает состояние гонки. Например, при перезапуске демона, когда новый демон уже запущен а старый ещё не завершился.
В приведенных тобой строках описывается как использовать системду со "старыми" сервисами и отнюдь не является рекомендованным способом.
Ответить | Правка | Наверх | Cообщить модератору

91. "Релиз FreeBSD 11.3"  +/
Сообщение от qwerty123 (??), 10-Июл-19, 08:06 
>Запись и чтение pid файла при старте вызывает состояние гонки.

щас заплачу....

у разработчика с мозгами стартующий процесс пишет НОВЫЙ файл, с НОВЫМ значением process ID

Ответить | Правка | Наверх | Cообщить модератору

120. "Релиз FreeBSD 11.3"  +/
Сообщение от souryogurt (ok), 10-Июл-19, 12:15 
Не плачь. Вот тут, например, написано о соглашении наименования pid файла. http://www.pathname.com/fhs/2.2/fhs-5.13.html

>>у разработчика с мозгами стартующий процесс пишет НОВЫЙ файл, с НОВЫМ значением process ID

Видно, что наглости у тебя хоть отбавляй, а мозгов немного:) Как же ты найдешь PIDфайл и проверишь что процесс еще не запущен или уже завершен? :)

Ответить | Правка | Наверх | Cообщить модератору

127. "Релиз FreeBSD 11.3"  –1 +/
Сообщение от Ser (??), 10-Июл-19, 13:39 
Тебе бы книжки почитать для начала.
Ответить | Правка | Наверх | Cообщить модератору

172. "Релиз FreeBSD 11.3"  +/
Сообщение от анонн (ok), 10-Июл-19, 16:52 
> Видно, что наглости у тебя хоть отбавляй, а мозгов немного:) Как же
> ты найдешь PIDфайл и проверишь что процесс еще не запущен или уже завершен? :)

например, чтением мана?


man pidfile
The pidfile_open() function opens (or creates) a file specified by the
     path argument and locks it.  If pidptr argument is not NULL and file can
     not be locked, the function will use it to store a PID of an already
     running daemon or -1 in case daemon did not write its PID yet

так же можно почитать man flock.
Ответить | Правка | К родителю #120 | Наверх | Cообщить модератору

179. "Релиз FreeBSD 11.3"  +/
Сообщение от qwerty123 (??), 10-Июл-19, 17:11 
>Как же ты найдешь PIDфайл и проверишь что процесс еще не запущен или уже завершен

Понимаешь, дружище, есть такие штуки как системные вызовы....

Ответить | Правка | К родителю #120 | Наверх | Cообщить модератору

107. "Релиз FreeBSD 11.3"  +3 +/
Сообщение от YetAnotherOnanym (ok), 10-Июл-19, 11:27 
> новый демон уже запущен а старый ещё не завершился

Если у тебя так перезапускаются демоны, то мусор в PID-файле - далеко не самая острая проблема. Неотвязанные порты и незакрытые файлы подарят тебе намного больше веселья. Но если ты так перезапускаешь демоны, то так тебе и надо.

Ответить | Правка | К родителю #84 | Наверх | Cообщить модератору

109. "Релиз FreeBSD 11.3"  –3 +/
Сообщение от Dapredator (ok), 10-Июл-19, 11:31 
systemd схлопывпет все процессы в cgroup'е. Каждый процесс при старте получает свою cgroup.

А как ты будешь останавливать процесс когда криворукий init-script-писатель случайно грохнул твой pid файл или, ещё хуже, записал туда pid другого процесса? :-).

killall processname, lol? И привет всем процессам в контейнерах типа docker или LXC? :-)

Я тебя внимательно слушаю.

Ответить | Правка | К родителю #68 | Наверх | Cообщить модератору

114. "Релиз FreeBSD 11.3"  +2 +/
Сообщение от пох. (?), 10-Июл-19, 11:51 
> Я тебя внимательно слушаю.

слушай и запоминай, дитя 201x: точно так же я его буду останавливать, как если бы твой криворукий на-единственно-верной-сишечке-писатель "не схлопнул все процессы в cgroup'е", а вывел какой-то мусор в бинарный лог и повис. Как-нибудь, не поверишь, справлюсь.

Причем вот подобные вещи - в его продухте происходят регулярно, и исправить это - невозможно, если тебя не зовут Лёня (а Лёня исправит методом notabug). А скриптов зачем-то грохающих pid-файлы я лично не видел никогда. При том что юниксы (а не этот ваш помоечный "новый шит-стандарт") я админю явно больше лет, чем тебе исполнилось. А если и увижу (продукт таких как ты, которых менеджер заставил таки сделать не линукс-онли сетап) - исправлю без всяких проблем (скорее с нуля напишу).


Ответить | Правка | Наверх | Cообщить модератору

121. "Релиз FreeBSD 11.3"  –5 +/
Сообщение от Dapredator (ok), 10-Июл-19, 12:45 
> Как-нибудь, не поверишь, справлюсь.

Не верю. Поверю только когда расскажешь или покажешь кусок кода, как ты будешь останавливать процесс, когда pid файла нет или там мусор.


> вывел какой-то мусор в бинарный лог

Лет 6 как не интересует, что там на локальной машине в логах, все логи пишутся на удалённый сервер. Раньше был форвардинг в удалённый syslog, сейчас это ELK. Но я слышал, что systemd (специально для дегенератов) оставил совместимость не только с init скриптами, но и с возможностью писать текст.


> А скриптов зачем-то грохающих pid-файлы я лично не видел никогда

Это говрит о том и только о том, что ничего кроме локалхоста или виртуалки на хетцнере ты в жизни не видел. Я не стал бы на твоём месте этим сильно хвастаться.

А вот в моей практике сплошь и рядом случались ситуации, когда

if [ -f /path/to/file ] ; then

     ###### <--- вот тут был промежуток в минуты и "file" успевал либо многократно поменяться,
     ######       либо вообще исчезнуть
  
    do something

fi


Так что мамкин скриптописатель, как ты будешь останавливать процесс, когда у тебя либо исчез pid файл, либо там мусор? У тебя с темы спрыгнуть не получится, я за этим чётко слежу.

Ответить | Правка | Наверх | Cообщить модератору

202. "Релиз FreeBSD 11.3"  +/
Сообщение от пох. (?), 10-Июл-19, 18:43 
> Не верю. Поверю только когда расскажешь или покажешь кусок кода, как ты будешь останавливать
> процесс, когда pid файла нет или там мусор.

как только я услышу от тебя внятное объяснение, как ты будешь останавливать процесс, когда в  прекрасном коде на прекрасной сишечке в потрохах системды - мусор вместо его pid.

И не пытайся спрыгнуть с темы  - ты выдал совершенно бредовую идею, что пид из файла волшебным образом исчез. Вот и объясняй - почему это он не может точно так же исчезнуть (вместе с волшебными группами и миллионом других волшебных ненужно) из памяти кривого непроверябельного bloatware на волшебнейшей сишечке.

И чем эта ситуация отличается в лучшую сторону, кроме той, что тот код ты, по всей вероятности даже прочитать не сможешь.


> А вот в моей практике сплошь и рядом случались ситуации, когда
>
> if [ -f /path/to/file ] ; then
>
>     ###### <--- вот тут был промежуток в минуты и "file" успевал либо многократно поменяться,

ну твоя практика неумения писать скрипты всем понятна (man mkstemp, man mv, man lockf)
но причем тут практика некоего потного Лёни в писании на сях - которую ты выдаешь за волшебное спасение от твоего неумения программировать в юниксе?

Я говорю - твоего, потому что ни в frebsd'шных, ни в большинстве других уцелевших юникс-систем стартовых скриптах подобного бреда не встречается, и внутри именно такого if будет только прекращение работы скрипта по причине неверного вызова.
Впрочем, тут еще и технически неверно, потому что нет проверки того, что на самом деле надо проверять - существования  процесса с таким pid. Он может просто сдох и файл стереть не смог.


Ответить | Правка | Наверх | Cообщить модератору

225. "Релиз FreeBSD 11.3"  +/
Сообщение от qwerty123 (??), 10-Июл-19, 22:21 

> И привет всем процессам в контейнерах типа docker или LXC? :-)

Чувак, во FreeBSD нет контейнеров.

Ответить | Правка | К родителю #109 | Наверх | Cообщить модератору

100. "Релиз FreeBSD 11.3"  +2 +/
Сообщение от qwerty123 (??), 10-Июл-19, 08:38 
>Как процесс останавливать будешь, чудо ты из семидесятых годов :)

NAME
     kill – send signal to a process

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <sys/types.h>
     #include <signal.h>

     int
     kill(pid_t pid, int sig);

DESCRIPTION
     The kill() system call sends the signal given by sig to pid, a process or
     a group of processes.

STANDARDS
     The kill() system call is expected to conform to IEEE Std 1003.1-1990
     (“POSIX.1”).

HISTORY
     A version of the kill() function appeared in Version 3 AT&T UNIX.  The
     signal number was added to the kill() function in Version 4 AT&T UNIX.


У тебя есть иные способы остановить процесс, чудо только родившееся прямо в смузи?

Расскажи мне о pipes, sockets, командах остановки, и прочем.
И насколько это стандартно.

Ответить | Правка | К родителю #59 | Наверх | Cообщить модератору

204. "Релиз FreeBSD 11.3"  +/
Сообщение от пох. (?), 10-Июл-19, 18:44 
> И насколько это стандартно.

Линукс ваш новый стандарт!


Ответить | Правка | Наверх | Cообщить модератору

252. "Релиз FreeBSD 11.3"  –1 +/
Сообщение от Серб (ok), 11-Июл-19, 13:43 
> И насколько это стандартно.

Очевидно, что-то слышал, что можно.

И таки да.

Вот решили проблему в ядре 5.2.

В системный вызов clone() добавлен флаг CLONE_PIDFD, при указании которого родительскому процессу возвращается файловых дескриптор "pidfd", отождествлённый с созданным дочерним процессом. Данный файловый дескриптор, например, можно использовать для отправки сигналов без опасения столкнуться с состоянием гонки (сразу после отправки сигнала целевой PID может быть освобождён из-за завершения работы процесса и занят другим процессом);

И pidfd_send_signal

Дают возможность слать сигналы без гонок.

Ответить | Правка | К родителю #100 | Наверх | Cообщить модератору

256. "Релиз FreeBSD 11.3"  +/
Сообщение от анонн (ok), 11-Июл-19, 14:14 
> Вот решили проблему в ядре 5.2.
> В системный вызов clone() добавлен флаг CLONE_PIDFD, при указании которого родительскому
> процессу возвращается файловых дескриптор "pidfd", отождествлённый с созданным дочерним
> процессом. Данный файловый дескриптор, например, можно использовать для отправки сигналов
> без опасения столкнуться с состоянием гонки
> И pidfd_send_signal
> Дают возможность слать сигналы без гонок.

Молодцы! Всего на 8 лет отстали ;)

man pdfork
> Process descriptors are special file descriptors that represent
> processes, and are created using pdfork(),
> pdgetpid() queries the process ID (PID) in the process descriptor fd.
> pdkill() is functionally identical to kill(2), except that it accepts a process descriptor, fd, rather than a PID.

man procdesc


NAME
     procdesc – process descriptor facility

DESCRIPTION
     procdesc is a file-descriptor-oriented interface to process signalling
     and control, which supplements historic UNIX fork(2), kill(2), and
     wait4(2) primitives with new system calls such as pdfork(2), pdkill(2),
     and pdwait4(2).  procdesc is designed for use with capsicum(4), replacing
     process identifiers with capability-oriented references.  However, it can
     also be used independently of capsicum(4), displacing PIDs, which may
     otherwise suffer from race conditions.  Given a process descriptor, it is
     possible to query its conventional PID using pdgetpid(2).

SEE ALSO
     fork(2), kill(2), pdfork(2), pdgetpid(2), pdkill(2), pdwait4(2),
     kqueue(2), wait4(2), capsicum(4)

HISTORY
     procdesc first appeared in FreeBSD 9.0, and was developed at the
     University of Cambridge.


Ответить | Правка | Наверх | Cообщить модератору

268. "Релиз FreeBSD 11.3"  –1 +/
Сообщение от Серб (ok), 11-Июл-19, 16:43 
Речь-то шла именно о файле.

И да. Из скриптов будут гонки. Из программы на Си - нет.
Об этом же была речь?

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру