[devel] Выключение компьютера

Dmitriy M. Maslennikov =?iso-8859-1?q?maslennikovdm_=CE=C1_gmail=2Ecom?=
Ср Апр 23 13:54:04 MSD 2008


После сборки и тестирования upstart, я обнаружил некоторую странную
вещь в скрипте /etc/rc.d/init.d/halt . В нем последней строкой
вызывается либо /sbin/poweroff либо /sbin/reboot или что-то из их
семейства. Им передаются параметры -i -d. Задача такого вызова, как я
понимаю, произвести непоследственное выключение или перезагрузку
компьютера.

Так вот, upstart предоставляет свои реализации этих утилит (для
эмуляции SysV). При этом они не имеют ключа -d (ходя он и не мешает им
работать), но при этом перезагрузки/выключения не происходит, а
вызывается /sbin/shutdown, который делает несколько иные действия. При
этом то же самое должны делать и утилиты из SysV, если я правильно
понял man (в код реализации SysV не смотрел, только в реализацию
upstart).

К правильным действиям приводит вызов тех же команд, но с параметрами
-i -d -f (это работает и в upstart и в SysV), так как параметр -f, как
раз и означает, что не надо вызывать shutdown, а непосредственно
выполнить действие. Это по-моему и есть правильный вызов, я даже не
понимаю, почему работает вызов без -f в SysV.

Кто-нибудь может прокомментировать это?


Подробная информация о списке рассылки Devel