/home/jack/myscript.sh
私が実行したいスクリプトは次のとおりです。
export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.26/
/home/jack/myapp/apache-tomcat-6.0.32/bin/./catalina.sh run
/etc/init/myapp.conf
私が書いた新文書:
description "Myapp Server"
start on runlevel [2345]
stop on runlevel [06]
respawn
respawn limit 10 5
exec `su jack -c /home/jack/myscript.sh`
もしそうなら、ユーザーとしてスクリプトを実行したい場合、jack
上記の設定はうまくいきますか?もっと良い方法がありますか?
ベストアンサー1
~によるとヌボリッチレシピ、さまざまなユーザーでサービスを実行する組み込み機能が計画されていますが、まだ実装されていません。
利用可能な場合はstart-stop-daemon
使用してください。
exec start-stop-daemon --start -u jack --exec /home/jack/myscript.sh
そうでない場合は、(エラーが発生しない限り)常に指定されたユーザーに切り替えて、独自のポリシー(特にほとんどのシステムではPAMポリシー)に準拠するか、またはをsu
使用してくださいsudo
。start-stop-daemon
su
sudo
あなたの場合は中間スクリプトは必要ありません。 Upstart サービス定義で直接環境変数を設定できます。
description "Myapp Server"
start on runlevel [2345]
stop on runlevel [06]
respawn
respawn limit 10 5
env JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.26/
exec /home/jack/myapp/apache-tomcat-6.0.32/bin/catalina.sh run