どこから探し始めればいいのかわかりません。私はデーモンについて読んでいましたが、概念を理解していませんでした。
詳細:
何か案は?誰かが私を正しい方向に向けることができますか?
最も単純なソリューションを探しています。
SysVInitを使用して簡単に行うことができます。手順:
アプリケーションの開始および停止スクリプトを作成します。ディレクトリに配置します。この例では次のとおりです。
/usr/local/bin/myapp-start.sh
/usr/local/bin/myapp-stop.sh
それぞれがアプリを実行/停止する手順を提供します。たとえば、myapp-start.sh
コンテンツは次のように単純にすることができます。
#!/bin/bash
Java -jar myapp.jar
停止スクリプトの場合、次のようになります。
#!/bin/bash
# Grabs and kill a process from the pidlist that has the Word myapp
pid=`ps aux | grep myapp | awk '{print $2}'`
kill -9 $pid
次のスクリプト(myscript
)を作成し、/etc/init.d
に配置します。
/etc/init.d/myscript
コンテンツ:
#!/bin/bash
# MyApp
#
# description: bla bla
case $1 in
start)
/bin/bash /usr/local/bin/myapp-start.sh
;;
stop)
/bin/bash /usr/local/bin/myapp-stop.sh
;;
restart)
/bin/bash /usr/local/bin/myapp-stop.sh
/bin/bash /usr/local/bin/myapp-start.sh
;;
esac
exit 0
(SysVを使用して)システムでスクリプトを開始します。次のコマンドを実行するだけです(ルートとして):
update-rc.d myscript defaults
PS:Upstartが素晴らしくて素晴らしかったことは知っていますが、古いSysV initシステムを優先しています。
はい!可能です。 :)Upstartは、サービスが実行されていることを確認する方法です。 5つのパッケージがあり、すべてデフォルトでインストールされます。
学習はとても楽しく、それだけの価値があります。 UpstartにはWebサイトがあります: http://upstart.ubuntu.com/
3つの簡単な提案...
Startスクリプトを/etc/rc3.d
(マルチユーザーコンソールモード)で作成し、対応するKillスクリプトを/etc/rc.0
および/etc/rc6.d
は、システムのパワーダウン(runevel 0)またはリブート(runlevel 6)時にJavaプログラムを制御された方法で強制終了します。 Runlevelsの概要 を参照=。
Javaアプリをランレベル2(rc2.d)で起動できる場合がありますが、クローラーとしてTCP/IPが必要になります。そのため、事前にランレベル2でネットワークサービスが利用可能/開始されていることを確認してください。ネットワーキングはランレベル3で間違いなくアップしています。
/etc/init.d
には、実際のすべての開始/強制終了スクリプトが含まれています。 /etc/rcN.d
ディレクトリには、それらへのリンクが含まれています。ランレベルNごとに、それぞれ開始または強制終了するためにSまたはKのプレフィックスが付いています。
crond
によって実行されるプロセスは、ログアウト間で持続する必要があります。たぶんあなたのcrontabに追加してください。
Nohup
で実行されるプロセスも持続するはずです。 Nohup:ログアウト後もコマンドを実行する を参照してください。
$ Nohup Java -jar myapp.jar &
デフォルトでは、myapp.jar
の標準出力は./Nohup.out
という名前のファイルに送られます。前者が書き込み可能でない場合は$HOME/Nohup.out
という名前になります。
最も簡単な方法は、supervisord
を使用することです。詳細は http://supervisord.org/ をご覧ください
ここで詳細を表示することもできます。
Linux auth-agent およびWindows auth-agent.bat のJavaバージョンチェックを使用した単純な起動スクリプト
また、以下を使用してアプリケーションを作成する場合にも注意してください。
update-rc.d myscript defaults
許可0755を持ち、.shパスを使用または取得するには。スクリプトが/root/test.shにあるとしましょう。/root/
にアクセスする前に、最初にCD test.sh
に変更する必要があります。
最適な方法は、init.dでSHを作成し、sh
へのパスを変更して、開始関数で実行することです。