Программирование, фотография, электроника и домашняя автоматизация

Установка Java-приложения как сервиса systemd в Linux

levap
levap
2019-12-17

Требуемые зависимости

  • JRE
  • systemd

Создаем рабочую директорию сервиса

$ sudo mkdir /opt/myservice

Создаем пользователя и группу под которыми будет запускаться сервис

$ sudo groupadd -r jvmgrp
$ sudo useradd -r -s /bin/false -g jvmgrp jvmapps

Проверяем созданного пользователя

$ sudo id jvmapps
uid=999(jvmapps) gid=998(jvmgrp) groups=998(jvmgrp)

Создаем systemd service

$ sudo nano /etc/systemd/system/myservice.service

Со следующим содержимым

[Unit]
Description=My Service
After=network.target

[Service]
WorkingDirectory=/opt/myservice
ExecStart=/usr/bin/java -Xms256m -Xmx4g -jar service.jar
User=jvmapps
Type=simple
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

Настраиваем права для директории сервиса

$ sudo chown -R jvmapps:jvmgrp /opt/myservice

Обновляем конфиг systemd

$ sudo systemctl daemon-reload

Запускаем службу

$ sudo systemctl start myservice.service

Проверяем статус службы

$ sudo systemctl status myservice.service

myservice.service - My Service
Loaded: loaded (/etc/systemd/system/myservice.service; disabled; vendor preset: enabled)
Active: active (running) since Tue 2019-12-17 15:40:59 MSK; 3s ago
Main PID: 12350 (java)
Tasks: 60 (limit: 4915)
Memory: 266.1M
CPU: 10.309s
CGroup: /system.slice/myservice.service
└─12350 /usr/bin/java -Xms256m -Xmx4g -jar service.jar

Всё ОК

levap
  • Более 10 лет профессионально занимаюсь разработкой ПО, основной стек: Java, Spring Framework, PosgreSQL, Elastic, RabbitMQ, Docker. Увлекаюсь фотографией, путешествиями, радиолюбительством, и домашней автоматизацией.

Разное

Leave a Comment

Your email address will not be published. Required fields are marked *