Ich habe den folgenden Dienst erstellt, amos.service, und er muss als amos (Mitglied der amos-Gruppe) ausgeführt werden.
[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
alle Berechtigungen gesetzt wurden auf /usr/share/amos
zuamos:amos
Die Datei amos_service.sh lautet wie folgt:
#!/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"
Wenn ich den Dienst anfänglich ohne Änderungen an den Verzeichnissen ausführe, was bedeutet, dass er zu root gehört und amos.service nicht den Parameter User not Group hat, läuft alles hervorragend!
Sobald ich die Verzeichnisberechtigungen auf amos: amos ändere und den Benutzer & die Gruppe amos.service hinzufüge, funktioniert der Dienst nicht mehr und ich erhalte Folgendes: Siehe angefügtes Bild
/var/log
als sie Eigentum von root ist. Ich denke, Sie möchten ein Verzeichnis verwenden, /var/log/amos/
das Sie als Eigentum von amos erstellen.