Как запустить файл jar с помощью systemd

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

my-startup.service

[Unit]
Description=Startup

[Service]
ExecStart=/usr/local/sbin/my-startup.sh

[Install]
WantedBy=multi-user.target

my-startup.sh

cd /var/www/test.com
nohup java -jar *.jar>test.out 2>test.err &

Но приложение не запускается при запуске сервера.

● my-startup.service - Startup
   Loaded: loaded (/etc/systemd/system/my-startup.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since Wed 2018-12-12 16:22:52 +0530; 27s ago
  Process: 650 ExecStart=/usr/local/sbin/my-startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 650 (code=exited, status=0/SUCCESS)

Dec 12 16:22:52 localhost.localdomain systemd[1]: Started Startup.
Dec 12 16:22:52 localhost.localdomain systemd[1]: Starting Startup...
0
задан 13 December 2018 в 04:27
1 ответ

Использование системных директивd вместо оболочки приводит к более согласованному окружению. Это включает в себя отсутствие зависимости от $PATH или рабочей директории, предоставляя полные пути там, где они известны.

Не требуется ни и для управления заданиями, ни для управления SIGHUP. systemd service units уже являются фоновыми.

Если предположить, что программа не вилка, другими словами, java exec продолжает работать, то это Type=simple

[Unit]
Description=something

[Service]
ExecStart=/usr/bin/java -jar /var/www/test.com/something.jar
StandardOutput=file:/var/log/something.out.txt
StandardError=file:/var/log/something.err.txt
Type=simple
WorkingDirectory=/var/www/test.com

[Install]
WantedBy=multi-user.target
2
ответ дан 4 December 2019 в 13:22

Теги

Похожие вопросы