Завершение работы и выключение системы

При выключении системы Linux следует соблюдать определенные процедуры. В противном случае файловые системы и файлы могут стать нерабочими. В Linux применяется дисковый кэш, данные из которого записываются на диск с определенной периодичностью. Это увеличивает производительность системы, но также подразумевает, что простое отключение питания может привести к потере данных в кэше и частичному повреждению файловой системы.

Мультизадачность системы также создает риски при неправильном выключении, особенно на многопользовательских машинах. Для корректного завершения работы в Linux предусмотрены команды shutdown(8) и halt(8), расположенные в каталоге /sbin.

Если система функционирует на однопользовательском компьютере, обычно происходит следующее: завершается работа всех приложений, завершается работа всех виртуальных консолей, вход в систему осуществляется под пользователем root. После этого выполняется команда halt или shutdown -h now.

На многопользовательских машинах команда shutdown может использоваться так: shutdown -h +time message. Например: root# shutdown -h +10 'We will install a new disk. System should be back on-line in three hours.'

После выполнения этой команды каждый пользователь системы получит уведомление о предстоящем выключении.

Broadcast message from root (ttyp0) Wed Aug 2 01:03:25 1995...
    We will install a new disk. System should
    be back on-line in three hours.
    The system is going DOWN for system halt in 10 minutes !!

При использовании команды halt установка задержки невозможна. Эта команда редко используется на многопользовательских системах. Файл /etc/inittab содержит команды, выполняемые при выключении системы.

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

В редких случаях невозможно корректно завершить работу системы. В таких ситуациях рекомендуется дождаться завершения работы программы update(8) и только потом отключать питание. Некоторые предпочитают использовать команду sync(8) перед выключением, но этот метод может вызвать проблемы и его использование не рекомендуется.

Примечание
Цифра в скобках указывает на раздел в руководстве man, где можно найти детальное описание данной команды.