inittab
私は現在起動中にプログラムがロードされるように追加する必要があるプロジェクトに取り組んでいます。
私が始めようとしているプログラムはC#モノラルアプリケーションです。起動スクリプトを作成し、起動スクリプトを手動で実行すると、プログラムは正常に起動します。ところでinittab
プログラムに入れてみるとプログラムが始まらないですね。
確認してみると/var/log/messages
何の問題もなく、ただリブートだけになりますね。
私がスクリプトに追加したinittab
ものは次のとおりです。
bes:2345:respawn:/home/bits/MyProgram/start.myprogram
あなたが提供できる助けに感謝します
修正する 以下は/home/bits/MyProgramにある起動スクリプトのコードです。
#!/bin/sh
cd /home/bits/MyProgram
/usr/bin/mono EmailServer.exe "$@"
また、/usr/bin/monoで始まる行の末尾に> mylog.txtを追加してみました。例:
/usr/bin/mono EmailServer.exe "$@" > mylog.txt
起動スクリプトを手動で実行すると、起動スクリプトがあるディレクトリになくてもうまく機能します。ただし、inittabに追加してtelinit qを実行すると起動されず、ログも記録されません。ただし、プログラムを手動で起動するとログが記録されます。
あなたが提供できる助けに感謝します。
ベストアンサー1
プログラムをどこかに置きます。
次の場所にある初期化ジョブ制御フレームワークテンプレートファイルをコピーして編集します。/etc/init.d/bones。
必要なランレベルを示すようにこのファイルを変更してください。たとえば、2,3,4,5が必要な場合は、ファイルの上部(コメント)に必要なランレベルを表すオプションがあります。
この新しいファイル/etc/init.d説明的な名前を使用してください。 (私の名前例で使用)
これをテストまたは有効/無効にするプラットフォームに依存しない方法(使用する場合)頭蓋骨文書)
sudo /etc/init.d/myfancyname start
sudo /etc/init.d/myfancyname stop
sudo /etc/init.d/myfancyname restart
これらの同じタスクを実行するディストリビューション方法があります。たとえば、Debian は以下を使用します。update-rc.d myfancyname [開始|停止|有効化|無効化...]
inittabを次に修正してください。一般的に言えばㅏ悪い考えると、これを台無しにするとシステムが起動しなくなり、2つの問題が発生します。 (正規表現は必要ありません!)
/etc/init.d/サブディレクトリにスクリプトを追加することはさらに標準化されており、ほぼすべての種類のLinux(* nix、いくつかのbsdなど)で利用できます。