4.3. Завершение работы и выключение системы
При выключении системы Linux необходимо выполнять некоторые процедуры. Если этого не сделать, то файловые системы и файлы могут повредиться. Это происходит по причине наличия в Linux дискового кэша, информация из которого записывается на диск только через некоторые промежутки времени. Это значительно повышает производительность системы, но также означает, что если просто выключить питание компьютера, то в дисковом кэше может находится большое количество информации и файловая система может быть частично повреждена, так как на диск обычно сбрасывается только часть информации.
Другой причиной для этого является мультизадачность системы, где одновременно может выполняться несколько процессов и выключение питания может быть гибельным для системы. Особенно это касается компьютеров, на которых одновременно работает несколько пользователей.
Существуют команды, предназначенные для правильного выключения системы - это shutdown(8) и halt(8), расположенные в каталоге /sbin. Есть два обычных способа их применения.
Если система установлена на компьютере, где работает один пользователь, то обычно завершают работу всех программ, работу всех виртуальных консолей, входят в систему под пользователем root (или остаются подключенными под этим пользователем, только в этом случае нужно перейти в корневой каталог во избежание проблем с демонтированием файловых систем), затем выполняется команда halt или shutdown -h now (при желании можно установить задержку, которая устанавливается заменой параметра now на знак '+' и числом минут, по истечении которых будет завершена работа системы) или просто halt.
Если на компьютере, на котором установлена система, работает одновременно несколько пользователей, то возможно использование команды shutdown в следующем формате:
shutdown -h +time message,
где time это время, по истечении которого работа системы будет завершена, а message - сообщение, в котором объясняется причина выключения. Например, root# shutdown -h +10 'We will install a new disk. System should > be back on-line in three hours.'
Выполнение этой команды предупредит каждого пользователя, работающего в системе, что она будет выключена через 10 минут.
Сообщение выдается на каждый терминал, где работают пользователи, включая xterm.
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 содержит команды, выполняющиеся при выключении системы.
После запуска процесса прекращения работы системы, демонтируются все файловые системы (кроме системы root), завершается выполнение всех процессов и программ-демонов, затем демонтируется файловая система root и вся работа завершается. После этого выдается сообщение, в котором говорится, что можно отключить питание. Только после этого питание компьютера может быть отключено.
В некоторых случаях невозможно завершить этот процесс соответствующим образом. Например, при повреждении кода ядра в памяти, нарушается его работа или система зависает и просто нет возможности ввести новую команду можно только надеяться, что ничего не повредится и выключить питание. Если же неполадки не такие серьезные (например вышла из строя клавиатура), а ядро и программа update работают нормально, то наилучшим вариантом будет подождать несколько минут, пока update(8) не сохранит на диске информацию, хранящуюся в кэш-буфере и только после этого выключить питание.
Некоторые выключают компьютер после трехкратного выполнения команды sync(8), которая сбрасывает на диск содержимое буфера, и, после прекращения обращения к диску, выключают компьютер. Если в момент выключения работа всех программ была завершена, то эта процедура почти идентична выполнению команды shutdown. Однако, файловые системы не демонтируются, что может привести к некоторым проблемам, связанным с флагом 'clean filesystem' системы ext2fs. В любом случае использование этого способа не рекомендуется.
4.4. Перезагрузка системы
Процесс перезагрузки может быть достигнут путем прекращения работы системы, выключения питания и включения снова. Более простой способ - это указать команде shutdown перезагрузить систему установив опцию -r. Например, для этого можно использовать команду shutdown -r now. Также можно использовать команду reboot.
4.5. Однопользовательский режим работы
Команда shutdown может также использоваться для перевода системы в однопользовательский режим, в котором к системе никто не может подключится кроме пользователя root, который использует для работы главную консоль. Это иногда применяется для административных целей, для выполнения которых не может быть использована нормально работающая система.
... выполнением процессов: fork, exec, wait и exit. Вообще использование обращений к операционной системе дает возможность пользователю создавать программы, выполняющие сложные действия, и как следствие, ядро операционной системы UNIX не включает в себя многие функции, являющиеся частью "ядра" в других системах. Такие функции, и среди них компиляторы и редакторы, в системе UNIX являются программами ...
... ; пароль, который проверяет вас на идентичность; инструкции для диалога и доступа к системе UNIX, если ваш терминал напрямую не связан с компьютером. Отличия операционной системы UNIX от других операционных систем. Unix состоит из ядра с включенными в него драйверами и из утилит (внешних по отношению к ядру программ). Если надо изменить конфигурацию (добавить устройство, изменить порт или ...
... маршрутизацию данных от клиента к серверу Программные гнезда с общими коммуникационными свойствами, такими как способ именования и протокольный формат адреса, группируются в домены "домен системы UNIX" для процессов, которые взаимодействуют через программные гнезда в пределах одного компьютера "домен Internet" для процессов, которые взаимодействуют в сети в соответствии с семейством протоколов ...
... динамической библиотеки нам надо собрать файл командой: olya:~# gcc -с main.с olya:~# gcc main.o -L. -lfsdyn -o rezultdyn Если теперь Вы сравните файлы, полученные при использовании статической и динамической библиотеки, то увидите, что их размеры отличаются. В данном случае файл созданный с динамической библиотекой занимает чуть больше места, но это лишь от того, что программа ...
0 комментариев