Восстановление данных из сломанного (NTFS) раздела

Я всегда думал, что setsid () и руководители сеансов связаны с управлением процессами и тем, как работает доставка сигналов с терминалов. Они на один уровень выше, чем группы процессов.

Ответ на Stackoverflow относится к POSIX.1-2008 , в котором говорится:

3.339 Сессия

Набор групп процессов, созданных для управления заданиями. Каждая группа процессов является членом сеанса. Процесс считается членом сеанса, членом которого является его группа процессов. Вновь созданный процесс присоединяется к сеансу его создателя. Процесс может изменять свое членство в сеансе; см. setsid (). В одном сеансе может быть несколько групп процессов.

И Глава 11 продолжает рассказывать, как доставляются сигналы, на основе групп процессов и управляющего терминала сеанса.

На практике все логически отдельные «сеансы» в системе Linux, на которую я смотрел, запускаются под отдельным идентификатором сеанса: s, поэтому логин или какой-либо другой ( sshd , ] screen ) запускает setsid , как вы предложили.


Что касается того, что должен делать демон, я полагаю, это зависит от того, какую систему инициализации он использует. В Linux с традиционными сценариями инициализации System V демон должен работать в фоновом режиме самостоятельно (или с помощью помощника). Хотя с sysvinit сценарии инициализации могут запускаться непосредственно из оболочки администратора, и это может быть не во всех случаях чистой средой. (Можно унаследовать, например, ограничения ресурсов из сеанса.)

В Upstart и Systemd может быть предпочтительнее, если демон не выполняет форк сам, поскольку система инициализации может это сделать. (И Upstart, в частности, делает некоторые забавные вещи , чтобы следовать за демонами-ветвями.)

(Я не знаю о других Unix, но, как прокомментировал @Stephen Harris , это может быть хорошая идея для программы-демона, поддерживающей как разветвление, так и не-разветвление.)


Тогда есть, например, ssh-agent , который часто запускается самим пользователем без поддержки со стороны системы инициализации. Очень полезно, что он может развиваться в фоновом режиме (с setsid ) и оставаться в живых, поэтому его можно использовать из нескольких оболочек. ( экран окна, xterm s ...) Он также имеет полезный вывод при запуске, поэтому запуск его с nohup будет немного сложнее.

3
30.03.2016, 20:46
0 ответов

Теги

Похожие вопросы