it-swarm-ja.com

サービスを正しく作成するにはどうすればよいですか?

これが私がすることです:

1)ユーザーを作成するsome_deployer
2)次に、/company/script/<service name>のようなスクリプトを作成するフォルダーを作成します。
3)このフォルダーにstart.shおよびstop.shスクリプトを作成し、ユーザーsome_deployerに所有権とchmod 755のアクセス許可を付与します。
4)次に、/etc/init.d/フォルダに<service name>-serviceのようにスクリプトを作成し、ユーザーsome_deployerに所有権を与え、chmod 755にも権限を与えます。
5)次に、このサービスをサービスのリストに追加します。まだ/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
Valter Silva

ユーザーを作成する必要はありませんが、それが有利な場合は確かに作成できます。/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
Frank Thomas

LSBをあまり信じないでください。ほとんどのディストリビューションは長い間sysvinitを放棄しており、Ubuntu、RHELはupstartを使用しています(RHELの場合は主にSysV互換モード)。Fedoraはsystemdを使用しています。 1年以上前から、Fedora18ではほとんどすべてのサービスがネイティブsystemdです。 systemdの約束の1つは、LSB互換のセットアップを引き続き処理することですが、ネイティブ構成を使用する場合は多くの利点があります。その広範な ドキュメント を見てください。

2
vonbrand