Создание службы 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 .

  • Что такое «systemd» в CentOS 7
  • Установка mysql-сервера в сценарии оболочки брандмауэра (как пропустить настройку?)
  • Как получить UTF8 из шестнадцатеричной переменной?
  • macbuntu - это Linux-дистрибутив или рабочий стол или тема?
  • apt-get подсказки для компакт-дисков при установке пакетов, как мне его остановить?
  • Синхронизировать файлы с Mac на флешку - автоматически?
  • Запуск дополнительного подключения OpenVPN в системе systemd
  • Виртуальная машина зависает при попытке войти в систему после беспроблемного времени
  • Что произойдет, если я экспортирую переменную $ HOME при входе в систему?
  • Установка Python не выполняется в chroot
  • Вход в систему
  • Linux и Unix - лучшая ОС в мире.