LINUX.ORG.RU

Почему Arch при загрузке не чистит /var/run?


0

2

Сабж. Вроде бы это даже рекомендует FHS...

Даже моя небогатая фантазия смогла придумать сценарий плохого события:
1. Демон daemon загружается и создаёт /var/run/daemon.pid файл со своим PID.
2. Отключают свет, UPS'а нет.
3. При следующей загрузке daemon находит (старый) /var/run/daemon.pid и завершается с ошибкой, мол демон уже запущен.
4. Тем временем в системе запускается какой-то процесс bla-bla с PID, равным /var/run/daemon.pid.
5. Пользователь решает рестартнуть daemon (убийство+запуск). Убийство демона выглядит так:

kill -SIGTERM `cat /var/run/daemon.pid`
Тем самым пользователь убивает ничем невиновный процесс bla-bla.

-----------------

Вопрос 2. Чем отлючаются /var/run и /run? В FHS второго нет, но в Арче есть. /run монтируется как tmpfs, т.е. то, что нужно. Но, тем не менее, по дефолту все арчевые демоны создают pid-файлы в /var/run, который на диске и при загрузке не чистится.



Последнее исправление: toady2 (всего исправлений: 1)

> запускается какой-то процесс bla-bla с PID

daemon.pid


Ничего странного не видишь?

Ну и да, не знаю, как в этих ваших Арчах, но в Дебиане можно поправить:

$ grep -i ram /etc/default/rcS
RAMRUN=no
RAMLOCK=no

Соответственно, /var/run и /var/lock

Чем отлючаются /var/run и /run?


Ничем, второе - вынесенный в корень первый каталог. Появилось недавно, поищи по форуму

YAR ★★★★★
()

Могу посоветовать, для автоматической очистки, монтировать эту директорию как tmpfs (Выделить 1м.)

RCV ★★★★
()
Ответ на: комментарий от YAR

А, сценарий по диагонали прочитал. В любом случае, кто ж так сервис будет рестартовать? Или service daemon restart, или /etc/init.d/service restart

YAR ★★★★★
()
15 мая 2012 г.

У меня обратная ситуация.

Бесит меня этот арч. Сегодня вот заметил очередной идеотизм с его стороны!

# ll /var/run lrwxrwxrwx 1 root root 4 Feb 9 23:12 /var/run -> /run # mount | grep run run on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755) # grep run /etc/fstab #

Тоесть как мы видим, неизвестно откуда берётся этот run в формате tmpfs и правами 755, что позволяет писать туда только руту. В то же время куче демонов необходимо создавать там свои pid файлы от имени непривелигерованных юзеров. В том числе и zabbix_agent ищет там каталог zabbix, в котором хочет создать pid, но каталога такого нет и создать его он не может, а значит после ребута тупо не запускается...

БРЕД!!! что за идиоты делали эту херню? Соответственно вопрос к сообществу, в какую ж*пу в арче запихнули описание этого каталога, ежели в fstab оно отсутсвует?

itJunkie
()
Ответ на: У меня обратная ситуация. от itJunkie

Бесит меня этот арч. Сегодня вот заметил очередной идеотизм с его стороны!

А меня бесят истерички, которые не разобравшись в ситуации, начинают фонтанировать дерьмом.

/run создаётся udev'ом

max_udoff
()
Ответ на: комментарий от YAR

А, сценарий по диагонали прочитал. В любом случае, кто ж так сервис будет рестартовать? Или service daemon restart, или /etc/init.d/service restart

Во-первых, rc.d.

Во-вторых, угадай, что будет делать этот /etc/rc.d/service restart. hint: в без-systemd системах оно использует PID-файлы (потому, что без костылей никак, да).

x3al ★★★★★
()

Но, тем не менее, по дефолту все арчевые демоны создают pid-файлы в /var/run, который на диске и при загрузке не чистится.

Ничего подобного, арч:

ls -l /var/run
lrwxrwxrwx 1 root root 4 апр.  16 17:37 /var/run -> /run/

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Мдаааа, слышим звон, но не знаем где он... Ничего что все симлинки создаются с правами lrwxrwxrwx, а фактически имеют права каталога на который указывает симлинк??? Прошу с глупостями больше не писать в эту ветку.

itJunkie
()
Ответ на: комментарий от Eddy_Em

Пусть пишут в /run/lock. В чем проблема?

Хотябы в том, что мэйнтейнер пакета указал такой дефолтный путь которй фактически не позволяет демону запускаться после рестарта сервера! Конечно, я могу для каждого демона ручками всё перенастраивать, но нахера тогда нужен такой дистрибутив, где из коробки ничего не пашет?

itJunkie
()
Ответ на: комментарий от max_udoff

Не было бы истерик, если бы всё работало из коробки. Но так не происходит и стандартные пути оказываются не корректными... Что за дистрибутив, где надо лезьть внутря системы для того чтобы работали стандартные демоны? Так не должно быть или я не прав? Арч позиционируется как и любой другой бинарный дистр, таким образом, что всё работает из коробки, а фактически всё оказывается сильно через Ж.

itJunkie
()
Ответ на: комментарий от sergej

sergej Не понял твоего поста вообще. Мой вопрос был не в том, что не чистит, а какраз в том, что чистит, но потом монтирует не с теми правами, чтобы туда могли писать те кто должны.

itJunkie
()
Ответ на: комментарий от itJunkie

Ну так это «мейнтейнер» виноват. Вообще-то /run/lock для этих целей и предназначен по идее.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от itJunkie

А, так оно везде вроде так. Даже tmpfiles.d для этого сделали

$ cat /usr/lib/tmpfiles.d/minidlna.conf
# systemd tmpfile settings for minidlna
# See tmpfiles.d(5) for details

d /var/run/minidlna 0755 nobody nobody -
sergej ★★★★★
()
Ответ на: комментарий от itJunkie

Слышишь звон, да не знаешь, где он!

Я писал о том, что в арче /var/run - это и есть симлинк на /run. А в самом /run для программ, которые запущены не-рутом, есть специальная директория /run/lock, в которой права выставлены правильно и даже «липкий» бит установлен.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от itJunkie

УМВР. Я уж не знаю, что ты там делаешь, но делаешь это явно не так!

Подозреваю, что устанавливаешь какие-нибудь службы из AUR с неправильно написанным сценарием установки.

Eddy_Em ☆☆☆☆☆
()

И еще: кем надо быть, чтобы считать, что наличие pid-файла гарантирует, что процесс запущен? А если он сдох?

Даже безграмотная школота поймет, что надо сначала проверить, есть ли директория /proc/pid, потом - каково имя этого процесса. Я для верности еще и SIGUSR посылаю иногда...

А если сам демон этим не занимается - пишите оболочку на баше, которая в случае, если pid-файлу не соответствует демон, стирает этот файл и запускает демона.

Eddy_Em ☆☆☆☆☆
()

Почему Arch при загрузке не чистит /var/run?

Потому что он монтируется в tmpfs по дефолту.
Если кто-то изменил дефолт, не подумав о последствиях и не пофиксив возникшие в связи с этим проблемы, этот кто-то - ССЗБ.

pekmop1024 ★★★★★
()
Ответ на: комментарий от itJunkie

Арч позиционируется как и любой другой бинарный дистр, таким образом, что всё работает из коробки

Лолшто? В нём даже установщика нормального нет. Выбрал поделку для красноглазиков, теперь ноешь чего-то :D

max_udoff
()
Ответ на: комментарий от kss

systemd системы PID-файлы почему-то тоже используют...

У systemd есть и другие варианты убийства демонов.

x3al ★★★★★
()
Ответ на: комментарий от max_udoff

лолсамчтоле?

Про установщик и без меня тебе уже ответили. А я лишь скажу, что не сам выбирал этот недо-дистр, а он мне достался от другого админа и поскольку сервера находятся от меня в тысячах километров, то и переустанавливать систему я там пока как-то не решаюсь.

itJunkie
()
Ответ на: комментарий от itJunkie

он мне достался от другого админа

вот, а дебианошкольники смеялись от «арча на серверах»

anonymous
()
Ответ на: комментарий от ms-dos32

Тут вообще есть какой-то способ усмирить школоту, разводящую флэйм?

Деточка, такие как ты мне точно ничего не сделают =) Кроме того на улице первые встречные не лезут ко мне с идиотскими видосами и глупыми репликами, чтобы я им что-то говорил. Так что иди уже мимо!

itJunkie
()
Ответ на: комментарий от itJunkie

Деточка, ты тупой и агрессивный. Да, это оскорбление. Установка бубунту не дает права смотреть свысока на других, ты не во дворе с пацанами. И сдается мне, что такое частое употребление слова «школота» вызвано недавним или грядущим выпуском.

ms-dos32
()
Ответ на: комментарий от ms-dos32

Ты ещё и письками решил помериться, так выбирал бы с кем! Я с 6-го года в никсах, и ставил далеко не только убунтно, но даже имею десятки подконтрольных серверов под фряхой, имеющих нагрузку по 300 тысяч уников в сутки на обслуживаемых веб ресурсах. Так что иди уже в сторонку. Оскорблять он меня надумал =)))

itJunkie
()
Ответ на: комментарий от itJunkie

cool story
Настоящие специалисты на подобных форумах не сидят, а ты своим мнимым стажем пытаешься втоптать собеседника в говно

ms-dos32
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.