Я створив таку службу, amos.service, і її потрібно запускати як amos (член групи amos)
[Unit]
Description=AMOS Service
After=network.target
[Service]
User=amos
Group=amos
Type=simple
WorkingDirectory=/usr/share/amos
ExecStart=/usr/share/amos/amos_service.sh start
ExecStop=/usr/share/amos/amos_service.sh stop
Restart=on-failure
[Install]
WantedBy=multi-user.target
всі дозволи встановлені на /usr/share/amos
доamos:amos
amos_service.sh такий:
#!/bin/bash
CUDIR=$(dirname "$0")
cd /usr/share/amos
start() {
exec /usr/share/amos/run_amos.sh >> /var/log/amos.log 2>&1
}
stop() {
exec pkill java
}
case $1 in
start|stop) "$1" ;;
esac
cd "$CURDIR"
Коли я запускаю сервіс спочатку без будь-яких змін каталогів, тобто, що належать до root, а amos.service не має параметра User not Group, все працює чудово!
Після того, як я зміню дозволи на каталоги на amos: amos та додаю amos.service User & Group, serive не працюватиме, і я отримую наступне: Дивіться додане зображення
/var/log
належить root. Я думаю, ви хочете використовувати каталог, /var/log/amos/
який ви створюєте як власність amos.