А теперь системный ответ.
После этих вопросов и ответов прошло почти четыре года, и мир изменился, хотя они не изменились. Начиная с версии 7, CentOS использует systemd. Ubuntu упоминается в вопросе и в комментариях. Начиная с версии 15, Ubuntu также использует systemd.
Хотя можно использовать сценарии System 5 rc
в systemd, сценарии в ответах здесь, по меньшей мере, крайне неоптимальны. Один беспечно использует killall
, чьи проблемы с управлением демонами хорошо известны; а другой - путаница файла шаткой блокировки и логики PID-файла, ни одна из которых на самом деле не нужна в диспетчере сервисов, поскольку менеджеры сервисов сами отслеживают процессы демона.
Как я уже говорил в другом месте, если вы начинаете изучать этот материал и используете CentOS Linux версии 7 или новее или Ubuntu Linux версии 15 или новее, не начинайте со сценариев System 5 rc
. Начните с файловых модулей systemd.
шаблон для нескольких сервисов Xvfb
Простые файлы модулей xvfb.service
systemd для xvfb можно найти по адресу https://www.centos.org/forums/viewtopic.php?f=48&t=49080#p208363 и по адресу https://askubuntu.com/a/621256/. 43344 . Однако, как я уже упоминал в последнем, можно также использовать шаблонный подход:
[Unit]
Description=virtual frame buffer X server for display %I
After=network.target
[Service]
ExecStart=/usr/bin/Xvfb %I -screen 0 1280x1024x24
[Install]
WantedBy=multi-user.target
Как локально написанный, не системный, неупакованный, единичный файл для общесистемных (в отличие от пользователя) услуг, он, конечно, помещается в /etc/systemd/system/xvfb@.service
.
контроль услуг
Один экземпляр шаблона, в фактическую именованную услугу, с желаемым номером дисплея. Поэтому для display :99
существует фактический экземпляр службы с именем xvfb@:99.service
.
- Настройте службу на автозапуск при загрузке с помощью
systemctl enable xvfb@:99.service
.
- Отключите автозапуск сервиса с помощью
systemctl disable xvfb@:99.service
.
- Запустите службу вручную с помощью
systemctl start xvfb@:99.service
.
- Остановите службу вручную с помощью
systemctl stop xvfb@:99.service
.
- Проверьте текущее состояние службы подробно с помощью
systemctl status xvfb@:99.service
.
дальнейшее чтение