Как добавить команду для автоматического запуска демона перед входом в систему на сервере Ubuntu 20.04

Как добавить команду для автоматического запуска демона перед входом в систему на сервере Ubuntu 20.04

У меня есть две программы на сервере Ubuntu 20.04, которые расположены в:

 /home/kiko/go-btfs/cmd/btfs
 /home/kiko/node5007/cmd/btfs

Они оба запускаются с помощью команды: ./btfs daemonКак сделать так, чтобы эта команда для обоих каталогов запускалась автоматически перед входом на сервер? Я попытался создать службу автозапуска с помощью sudo nano /etc/systemd/system/btfs_main.serviceи затем ввел следующие настройки в блок btfs_main.service:

[Unit]
Description=Starting_btfs_daemon

Wants=network.target
After=syslog.target network-online.target

[Service]
Type=simple
ExecStart=/home/kiko/go-btfs/cmd/btfs/./btfs daemon
ExecStart=/home/kiko/node5007/cmd/btfs/./btfs daemon
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target

и затем: sudo systemctl daemon-reload, sudo systemctl enable btfs_main.service, sudo systemctl start btfs_main.service, systemctl status btfs_main.service. С последней командой у меня возникла ошибка: Unit btfs_main.service has a bad unit file setting. Как мне настроить параметры устройства, чтобы обе команды запускались автоматически?

решение1

Вы можете использовать файл /etc/rc.local для запуска скрипта после перезагрузки сервера.

Итак, шаги, которые вам необходимо выполнить, следующие:

  1. Сначала создайте /etc/rc.localфайл и сделайте его исполняемым. Это облако можно сделать через chmod a+x /etc/rc.localкоманду.
  2. Теперь создайте /etc/systemd/system/rc-local.serviceфайл. После создания файла службы systemd добавьте в него следующее содержимое.
[Unit]
 Description=/etc/rc.local Compatibility
 ConditionPathExists=/etc/rc.local

[Service]
 Type=forking
 ExecStart=/etc/rc.local start
 TimeoutSec=0
 StandardOutput=tty
 RemainAfterExit=yes
 SysVStartPriority=99

[Install]
 WantedBy=multi-user.target
  1. После этого включите службу при загрузке системы:

systemctl включить rc-local

  1. Теперь запустите службу и проверьте ее статус:

systemctl start rc-local.service

systemctl статус rc-local.service

Вы должны получить результат, как на изображении ниже. введите описание изображения здесь

  1. Теперь поместите ваши скрипты в /etc/rc.localфайл и сделайте их исполняемыми.
  2. Перезагрузите сервер и проверьте результаты.

Связанный контент