Вопрос новичка:
Я планирую установить «устройство» для Linux-сервера (легкий базовый веб-сервер, сервер PIM), то есть крошечный безголовый ящик. Я бы хотел, чтобы он запускался всякий раз, когда я подключаю его и включаю кнопку питания, без каких-либо дополнительных действий или взаимодействия с пользователем (отсюда и «устройство»).
Из-за этого мне интересно, нужно ли мне входить в систему для запуска серверных служб? Или сервер начнет работать, когда система загрузится, и конкретному пользователю не потребуется входить в систему?
Спасибо!
P.S. Возможно, я устанавливаю сервер Ubuntu, но ответ не обязательно должен быть специфичным для Ubuntu.
Да, это не только возможно, но в большинстве случаев является поведением по умолчанию. В вашей системе будет набор скриптов в /etc/init.d/
и /etc/rcX.d
которые управляют автоматическим запуском сервисов.
То, что вы хотите исследовать, называется "Уровни выполнения". Когда устройство Linux загружается, оно подходит к любому настроенному (или по умолчанию) уровню запуска, обычно указанному в файле. /etc/inittab
. Для серверов это обычно уровень запуска 3; для рабочих станций, уровень запуска 5. Init
process обрабатывает запуск и остановку сервисов; логин пользователя не требуется.
Для сравнения: Windows в основном имеет один уровень запуска, который соответствует уровню запуска 5 в мире Linux.
То, что запускается и останавливается, определяется файлами в /etc/rcX.d
, как объяснил ErikA. X соответствует уровню выполнения. Взгляните на инструмент "chkconfig"как простой способ манипулировать настройками для заданного уровня выполнения.
Службы будут запускаться независимо от (и до любого) входа пользователя в систему. У меня есть безголовый сервер под управлением Ubuntu, и я почти никогда не захожу на него (когда я это делаю, это обычно происходит через ssh, поскольку нет клавиатуры / монитора).
P.S. Я использовал много дистрибутивов на протяжении многих лет и думаю, что вы делаете правильный выбор, выбирая Ubuntu.
Как заявляет ErikA, у большинства сервисов есть сценарий инициализации, который позаботится об этом. Если в вашем приложении нет сценария инициализации, лучшим решением будет написать для него сценарий. В качестве быстрого решения вы можете использовать cron с такой записью, как @reboot /path/to/something/to/run/when/server/starts
Но так все начнется без какого-либо дополнительного взаимодействия с вашей стороны.