2017-10-16 16 views
0

bashスクリプトを使用して次の問題が発生します。ここでサービスとしてのbashスクリプトの実行と別のbashスクリプトへの書き込みが機能しない

は、私は「スタートアップ」スクリプトファイル内で持っているものです。

#!/bin/bash 

java -cp ../lib/online-store.jar:../lib/* com.online.store.Main 

OnlineStorePID=$! 

if [$OnlineStorePID -ne 0] then 
    echo "kill $OnlineStorePID" > shutdown 
fi 

基本的に私は何をすべきか、Javaアプリケーションを実行するプロセスIDを取得し、別のbashのファイルに書き込むことです。このプロセスはすべて起動スクリプトを実行するときに機能し、 'shutdown'スクリプトファイルは 'kill processIDNumber' cmdを含む行で正常に更新されます。

は今、私は、以下のコマンドを使用して、このスクリプトのためのUbuntu上でサービスを作成しようとしました:私は、サービスを開始すると

sudo systemctl daemon-reload 
sudo systemctl enable online-store.service 
sudo systemctl start online-store 

javaアプリケーションが正常に起動しますが、シャットダウンスクリプト・ファイルは更新されません。 'echo "kill $ OnlineStorePID"> shutdown "行は実行されていないようです。私は文句の誤りはありません。誰もがここで何が問題であるか知っていますか?ここで

は私のサービスファイルです:

[Unit] 
Description=Online store service 
Requires=multi-user.target 
After=multi-user.target 
Wants=mysql.service 

[Service] 
WorkingDirectory=/home/user/Desktop/online-store-service 

#path to executable. 
ExecStart=/home/user/Desktop/online-store-service/bin/startup 
ExecStop=/home/user/Desktop/online-store-service/bin/shutdown 

SuccessExitStatus=143 
TimeoutStopSec=10 
Restart=on-failure 
RestartSec=5 

[Install] 
WantedBy=multi-user.target 
+0

マインクラフトなどのようなjavaコマンドを実行します。)のhttps://minecraft.gamepedia .com/Tutorials/Ubuntu_startup_script – mko

+0

サービスファイルには何がありますか? – 123

+0

あなたは 'execstop'サービスは必要ありません.pidを自分で試して管理する必要はありません。 – 123

答えて

0

変更スクリプトと以下のバックグラウンド・プロセス救助へ

java -cp ../lib/online-store.jar:../lib/* com.online.store.Main >/dev/null 2>&1 & 
+0

これは動作します(シャットダウンスクリプトはcmdで更新されます)が、サービスの起動時にエラーが発生します。「結果が「exit-code」で失敗しました」 –

+0

シャットダウンスクリプトの詳細が表示されます。 –

関連する問題