次のサービス、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に属し、Users not Groupパラメータを持たないamos.serviceがすべて実行されます。
ディレクトリのアクセス許可をamos:amosに変更し、amos.serviceユーザーとグループを追加すると、サービスが機能せず、次のメッセージが表示されます。添付画像を参照
/var/log/amos.logに記録されるメッセージに関して、成功事例と失敗事例の違いはありますか?
—
sourcejedi
また、この設定は
—
sourcejedi
/var/log
、rootが所有しているという点で奇妙です。/var/log/amos/
amosが所有するディレクトリを作成したいと思います。
前述のように作成し、結果をログに記録します
—
-itprguy