Ho creato il seguente servizio, amos.service, e deve essere eseguito come amos (membro del gruppo 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
tutti i permessi sono stati impostati /usr/share/amos
peramos:amos
amos_service.sh è il seguente:
#!/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"
Quando eseguo inizialmente il servizio senza alcuna modifica alle directory, ovvero all'appartenenza a root e ad amos.service non avendo il parametro User not Group, tutto funziona alla grande!
Dopo aver modificato le autorizzazioni delle directory in amos: amos e aggiunto l'utente e il gruppo amos.service, il servizio non funzionerà e visualizzerò quanto segue: Vedi l'immagine allegata
/var/log
è di proprietà di root. Penso che tu voglia usare una directory /var/log/amos/
che crei come di proprietà di Amos.