J'ai créé le service suivant, amos.service, et il doit fonctionner en tant qu'amos (membre du groupe 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
toutes les autorisations ont été définies sur /usr/share/amos
laamos:amos
amos_service.sh est le suivant:
#!/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"
Lorsque j'exécute le service initialement sans aucune modification des répertoires, c'est-à-dire, appartenant à root et amos.service n'ayant pas le paramètre User not Group, tout fonctionne très bien!
Une fois que j'ai changé les autorisations des répertoires en amos: amos et ajouté l'utilisateur et le groupe amos.service, le serive ne fonctionnera pas et j'obtiens ce qui suit: Voir l'image jointe
/var/log
appartient à root. Je pense que vous souhaitez utiliser un répertoire /var/log/amos/
que vous créez comme appartenant à amos.