
私がやっていることは次のとおりです:
1) ユーザーを作成しますsome_deployer
2) 次に、次のようなスクリプトを実行するためのフォルダーを作成します/company/script/<service name>
3) このフォルダーにstart.sh
とstop.sh
スクリプトを作成し、ユーザーに所有権some_deployer
と の権限を与えますchmod 755
。 4) 次に、次のようなフォルダー
にスクリプトを作成し、ユーザーに所有権と の権限を与えます。 5) 次に、このサービスを内 のサービスのリストに追加します。/etc/init.d/
<service name>-service
some_deployer
chmod 755
/etc/init.d/
/sbin/chkconfig --add -service (suse) または update-rc.d <service name>
defaults (ubuntu)
これは正しいですか? これは最善の方法ですか? 作成中のサービスの 1 つが突然機能しなくなったので質問しています。コマンド /etc/init.d/-service を実行しようとしていますが、 と表示されますcommand is not found
。なぜでしょうか?
答え1
ユーザーを作成する必要はありませんが、それが有利な場合は作成できます。/company/script/ について何を言っているのかわかりませんが、作成しない理由はありません。update-rc.d を実行する前に、スクリプト ファイルが /etc/init.d にあることを確認してください。/company/script/ を使用する理由がわかりませんが、エラーから、サービス名が通っていないことがわかります。
init.d スクリプトの LSB 仕様については、こちらを参照してください。http://wiki.debian.org/LSBInitScripts stop/start/restart/force-reload/status の機能を持つ単一のスクリプトを作成し、それを update-rc.d または提案された任意のものに登録します。これにより、update-rc.d は単一のファイルを指定して、それを使用して必要なすべての操作を実行できるようになります。
答え2
LSBをあまり信じないでください。ほとんどのディストリビューションはとっくに使用を中止していますsysvinit
。Ubuntu、RHEL upstart
(RHELの場合は主にSysV互換モード)は使用していません。Fedoraはsystemd
1年以上使用しており、Fedora 18ではほぼすべてのサービスがネイティブのsystemdです。systemdの約束の1つは、LSB互換のセットアップを引き続き処理することですが、ネイティブ構成を使用すると多くの利点があります。その広範なドキュメンテーション。