11.02.07
setsid.
Во время очередного обхода почтового сервера вдруг заметил, что при перезапуске с консоли демонзированный dspam по-прежнему занимает pty.
# ps aux | grep dspam
dspam 1798 0.2 0.2 4200 1584 pts/1 S 14:53 0:00 dspam –daemon
Не смотря на то, что он запускается из под sudo, но мне это все равно как-то не понравилось, особенно вспоминая дебиановскую багу с апачем, позволяющую в такой ситуациии выполнять команды от рута. Это, имхо, невозможно в данной ситуации, но все же. Программа же запускается как демон, зачем ей терминал?
Добавил во фьючерлист dspam’а, но захотелось найти решение.
Не помню, но как-то началось с системного вызова setpgrp, попутно нашел скриптик перловый в мейллистах dspam’а. И в конце концов с
удивлением нашел, что в линуксе есть не только системный вызов
setsid, но и одноименная утилита.
sudo -u dspam setsid dspam –daemon
и вуаля:
ps aux | grep dspam
dspam 1996 0.1 0.2 4200 1580 ? Ss 15:03 0:00 dspam –daemon
Лепота.
//Век живи - век учись, однако.
viliar said,
March 5, 2008 at 11:36 pm
Запуск сего под sudo требует, чтобы в
/etc/sudoers не было записи
Defaults requiretty
А то стартовать процесс будет только с консоли, в автоматическом режиме не будет.