amos(amosグループのメンバー)として実行する必要がある次のサービスamos.serviceを作成しました。
[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"
初めてサービスを実行したとき、ディレクトリは変更されませんでした。つまり、ルートディレクトリに属し、amos.serviceには「グループ以外のユーザー」パラメータがなく、すべてがうまく実行されました!
ディレクトリ権限を amos:amos に変更して amos.service ユーザーとグループを追加すると、サービスが機能せず、次のメッセージが表示されます。添付画像をご覧ください。
ベストアンサー1
システムを使用してください:
問題を表示するには、journalctl -xe
サービスを開始してから使用してください。
Bashスクリプトは必要ありません。これをサービスファイルに入れます。
ExecStart=/usr/share/amos/run_amos.sh
いいえExecStop
、systemdはすべての子プロセスを停止します。を使用して出力を表示できますjournalctl -u amos.service
。