Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 3, 2018 23:35:34

Ramzes3
Зарегистрирован: 2018-08-03
Сообщения: 3
Репутация: +  1  -
Профиль   Отправить e-mail  

Правильное завершение демона

Коллеги, приветствую,

Не так дано пишу на питоне, возникла необходимость написать демона.
Написал, даже работает но есть один вопрос:

Демон как и положено запускается от root. Создаю файл /var/run/daemon.pid. Далее в процессе демонизации для обеспечения безопасности системы меняю uid и gid процесса демона на обычного юзера.
Все здорово, пока не приходится останавливать демона.

При остановке возникает проблема с удалением pid файла так как он находится в директории /var/run, которая принадлежит root и удалять файлы там может только он, а демон в этот момент работает уже от обычного пользователя. Смена владельца и прав на сам pid-файл, как и ожидалось результата не дает.

Подскажите пожалуйста как обойти данную проблему? Ведь очень много демонов работает от nobody:nobody и таких проблем нет.

P.S. Код пока не стал выкладывать, так как вопрос более теоретический. Если будет нужно - выложу.

Заранее спасибо!



Офлайн

#2 Авг. 4, 2018 00:43:06

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Правильное завершение демона

Создай не файл, а файл в директории. На директорию можешь поставить права уже (группа владельцев ставится и пользователь в неё добавляется).

[guest@localhost ~]$ ll -d /var/run/postgresql/
drwxr-xr-x. 2 postgres postgres 40 авг 4 08:11 /var/run/postgresql/
[guest@localhost ~]$
[guest@localhost ~]$ ll -d /var/run/hplip/
drwxrwxr-x. 2 root lp 40 авг 4 08:11 /var/run/hplip/
[guest@localhost ~]$



Отредактировано py.user.next (Авг. 4, 2018 00:48:23)

Офлайн

#3 Авг. 4, 2018 09:31:15

Ramzes3
Зарегистрирован: 2018-08-03
Сообщения: 3
Репутация: +  1  -
Профиль   Отправить e-mail  

Правильное завершение демона

Спасибо за совет. Теперь работает как нужно.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version