OpenSuse 12.1のinittabにプロジェクトを追加する

OpenSuse 12.1のinittabにプロジェクトを追加する

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など)で利用できます。

おすすめ記事