Debianのアプリケーションからデーモンを作成する必要があります。 Ubuntuの「upstart」のような、Debianの標準ツールはありますか?いくつかのオプションとpidファイルを使用してデーモンとしてプログラムを起動し、pidファイルを使用してそれを強制終了するには、start-stopコマンドのみが必要です。
私はinit.dを見ましたが、これらは起動時の起動用のようです。デーモンを手動で起動したい。
Debianの/etc/init.d/skeleton
ファイルに従って、デーモンを手動で作成できます。
/usr/bin/service
を使用して$ Sudo service yourdaemon start
を起動し、デーモンをsstop $ Sudo service yourdaemon stop
で起動できます。
スクリプトを/etc/rc?.d
ディレクトリのいずれにもリンクしない限り、スクリプトは起動時に開始されません。
一方で、debianでは標準ではありませんが、いくつか興味深い機能がある daemontools を確認することもできます。
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スクリプトで動作することを期待しています。 /etc/init.d/skeletonの例に見られるように、Debianでは標準でパッケージ用にそれらの1つを作成し、start-stop-daemonプログラムを使用します。
/etc/init.d/myserviceスクリプトを作成したからといって、スクリプトが自動的に起動する必要があるわけではありません。 update-rc.dなどのツールを使用して、ランレベルが停止および開始するランレベルを自動的に調整できます。これは すべてのランレベルでサービスの開始を無効にしますか? で詳細に説明されています