Debianのアプリケーションからデーモンを作成する必要があります。Ubuntuの "upstart"のようなDebianの標準ツールはありますか?いくつかのオプションとpidファイルを使用してデーモンとしてプログラムを起動し、pidファイルでそれを強制終了するには、start-stopコマンドのみが必要です。
init.dを見ましたが、これらは起動時の起動用のようです。デーモンを手動で起動したい。
Debianのアプリケーションからデーモンを作成する必要があります。Ubuntuの "upstart"のようなDebianの標準ツールはありますか?いくつかのオプションとpidファイルを使用してデーモンとしてプログラムを起動し、pidファイルでそれを強制終了するには、start-stopコマンドのみが必要です。
init.dを見ましたが、これらは起動時の起動用のようです。デーモンを手動で起動したい。
回答:
/etc/init.d/skeleton
Debian上のファイルに従って、デーモンを手動で作成できます。
を使用/usr/bin/service
して、デーモンを起動$ sudo service yourdaemon start
および停止でき$ sudo service yourdaemon stop
ます。
スクリプトをどの/etc/rc?.d
ディレクトリにもリンクしない限り、起動時にスクリプトは開始されません。
一方、daemontoolsはdebianの標準ではありませんが、いくつかの興味深い機能があります。
/usr/bin/service
私のシステム(Debian Lenny)にはないようですが、で直接スクリプトを開始でき/etc/init.d/myservice start
ます。
sudo invoke-rc.d yourservice start
同様に使用することができます
Debian(およびUbuntu)にはstart-stop-daemon
、initスクリプトで使用されるヘルパープログラムがあります。デーモンを起動および追跡するためのオプションがかなりあります。単にラッパーを書くことができます。例えば
case $1 in
start) start-stop-daemon --start --exec /my/exec/prog --pidfile /my/pid/file --background
;;
stop) start-stop-daemon --stop --pidfile /my/pid/file
;;
esac
Debianのプロセスを適切にデーモン化するには、制御プロセスから分岐する、IOをリセットする、プロセスIDファイルを作成して再生するなど、いくつかの手順を実行する必要があります。代わりに、同じ名前のパッケージのデーモンプログラムのようなものを使用して、それを行うことができます。それがあなたがしたいことである場合、答えはここStackOverflowで見つけることができます:https : //stackoverflow.com/questions/3095566/linux-daemonize
upstartコマンドは、Debianのinvoke-rc.dコマンドまたはsysvinit-utilsパッケージのserviceコマンドに似ています。彼らは、/ etc / init.dのinitスクリプトを使用することを期待しています。パッケージ用にそれらの1つを作成し、/ etc / init.d / skeletonの例でわかるようにstart-stop-daemonプログラムを使用するのがDebianの標準です。
/etc/init.d/myserviceスクリプトを作成したからといって、自動的に起動する必要があるわけではありません。update-rc.dなどのツールを使用して、自動的に停止および開始するランレベルを調整できます。これについては、「サービスをすべてのランレベルで開始できないようにする」で詳しく説明されています。