Создание службы bash на Ubuntu 17.04 с помощью systemd

Я запускаю 64-разрядную версию Ubuntu 17.04, и я хотел бы настроить синхронизацию и еще два приложения, которые будут запущены после загрузки машины, не требуя, чтобы кто-то входил в систему и вручную запускал их.

Я установил все приложения в следующие каталоги:

/home/msa/syncthing/ /home/msa/minecraft-server/ /home/msa/test/ 

Для каждого из этих приложений я создал скрипт запуска bash с командами запуска:

 /home/msa/syncthing/start.sh /home/msa/minecraft-server/start.sh /home/msa/test/start.sh 

Файл запуска синхронизации содержит следующее:

 ./syncthing 

Файл запуска minecraft-server содержит следующее:

 java -Xms1024M -Xmx2048M -jar minecraft_server.jar nogui 

Файл запуска теста содержит следующее:

 java -Xms1024M -Xmx2048M -jar test.jar 

Я обнаружил, что эта версия Ubuntu использует systemd и создала файл с именем syncthing.service в / etc / systemd / system /, содержащий это:

 [Unit] Description = Syncthing service description (todo) After = network.target [Service] ExecStart = /home/msa/syncthing/start.sh [Install] WantedBy = multi-user.target 

Затем я выполнил следующую команду:

 systemctl enable syncthing.service 

Он вернул, что символическая ссылка была успешно создана, поэтому я начал службу:

 systemctl start syncthing.service 

Это не сработало. Я выполнил эту команду:

 systemctl status syncthing 

и получил это:

 root@MinecraftServerAdvanced:/etc/systemd/system# systemctl status syncthing.service ● syncthing.service - Syncthing service description (todo) Loaded: loaded (/etc/systemd/system/syncthing.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Sat 2017-05-06 19:47:54 CEST; 4s ago Process: 789 ExecStart=/home/msa/syncthing/start.sh (code=exited, status=203/EXEC) Main PID: 789 (code=exited, status=203/EXEC) kvě 06 19:47:54 MinecraftServerAdvanced systemd[1]: Started Syncthing service description (todo). kvě 06 19:47:54 MinecraftServerAdvanced systemd[1]: syncthing.service: Main process exited, code=exited, status=203/E kvě 06 19:47:54 MinecraftServerAdvanced systemd[1]: syncthing.service: Unit entered failed state. kvě 06 19:47:54 MinecraftServerAdvanced systemd[1]: syncthing.service: Failed with result 'exit-code'. root@MinecraftServerAdvanced:/etc/systemd/system# 

Что я делаю не так?

One Solution collect form web for “Создание службы bash на Ubuntu 17.04 с помощью systemd”

Вам нужно указать правильный тип устройства systemd; взгляните на эту man-страницу [ 1 ] и краткое описание Archlinux Wiki [ 2 ]. Я думаю, что тип forking будет работать для вашей установки. Вы должны указать оболочку ранее; как это описано здесь: [ 3 ].

Независимо от вашего вопроса; Я не вижу никакого резона для запуска сценария оболочки в этой настройке. Просто укажите полный путь выполнения в ExecStart .

  • «Не удалось подключиться к отображению» в одной учетной записи пользователя
  • Список пакетов с установленными вручную уровнями без их зависимостей
  • Ubuntu 13.10 большая проблема с привилегиями
  • Как установить CLang с использованием предварительно скомпилированных двоичных файлов?
  • Что Linux Distro поддерживает поддержку Ethernet-чипа Killer E2200?
  • Как установить Ubuntu из Suse?
  • Создайте пакет deb из разницы между двумя изображениями
  • Xubuntu Oneiric не запускает XFCE
  • Изменение поведения клавиш-модификаторов
  • Где смонтировать все флэш-накопители USB?
  • Правило Udev hwdb не работает
  • Linux и Unix - лучшая ОС в мире.