Чтобы автоматически запустить службу в Linux, существует несколько способов. Вот некоторые часто используемые методы с примерами кода:
-
Скрипты Init.d:
- Создайте сценарий init.d в каталоге
/etc/init.d/. - Сделайте скрипт исполняемым с помощью команды:
chmod +x /etc/init.d/myservice. - Используйте команду
update-rc.d, чтобы добавить службу:update-rc.d myservice defaults. -
Пример сценария init.d:
#!/bin/bash ### BEGIN INIT INFO # Provides: myservice # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: My Service # Description: My Service Description ### END INIT INFO case "$1" in start) # Start the service ;; stop) # Stop the service ;; restart) # Restart the service ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 ;; esac exit 0
- Создайте сценарий init.d в каталоге
-
Системная служба:
- Создайте файл модуля службы systemd в каталоге
/etc/systemd/system/. -
Пример файла сервисного модуля systemd:
[Unit] Description=My Service After=network.target [Service] ExecStart=/path/to/myservice Restart=always [Install] WantedBy=multi-user.target - Включите запуск службы при загрузке:
systemctl Enable myservice. - Запустите службу:
systemctl start myservice.
- Создайте файл модуля службы systemd в каталоге
-
Задание Cron:
- Используйте планировщик cron для запуска команды во время загрузки.
- Отредактируйте файл crontab с помощью команды:
crontab -e. - Добавьте запись
@rebootв файл crontab. - Пример записи в crontab:
@reboot /path/to/myservice
-
Выскочка:
- Создайте скрипт Upstart в каталоге
/etc/init/. -
Пример скрипта Upstart:
description "My Service" start on runlevel [2345] stop on runlevel [!2345] respawn respawn limit 10 5 exec /path/to/myservice
- Создайте скрипт Upstart в каталоге