init.dスクリプトをインストールする方法は?


71

タスクをスケジュールするためにセロリを実行するために、init.dスクリプトをインストールしようとしています。ここに私が従った手順があります:

  • ファイルcelerydをコピーし、フォルダー/etc/init.d/に貼り付けました
  • 構成ファイルcelerydをフォルダー/ etc / default /に作成しました

今私がそれを開始しようとしたときsudo /etc/init.d/celeryd start、それはエラーをスローしますsudo: /etc/init.d/celeryd: command not found

init.dのインストール方法についてGoogleで調べました。このSO質問がありました

それは発行するように言ってuname -aおり、私がそうするとき、私はこれを得る:

Linux capsonesystem8-desktop 3.2.0-43-generic-pae 
#68-Ubuntu SMP Wed May 15 03:55:10 UTC     
2013 i686 i686 i386 GNU/Linux

また、utilsを使用してinsservinit.dスクリプトを有効化するので、試してみました:

insserv /etc/init.d/celeryd しかし、それはエラーをスローします insserv: command not found

だから私はinsserv をインストールしようとしましたsudo apt-get install insserv。しかし、それはaleadyがインストールされていると言います:

insserv is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 222 not upgraded.

それでは、init.dスクリプトをインストールする方法は?任意の助けをいただければ幸いです。

update1:

私が試したとき:

$ sh -x /etc/init.d/celeryd start

それはいくつかを明らかにしますerrors。それがサービスが開始しない理由かもしれません。

update2:

実行時にすべてのエラーをクリアした$ sh -x /etc/init.d/celeryd startが、それでもエラーがsudo /etc/init.d/celeryd startスローさcommand not foundれる


今は答える時間はありませんが、スタートアップの一部としてこれを実行したい場合は、Linuxがさまざまなランレベルディレクトリでスクリプトにリンクを追加して、Linuxが君は。(/etc/rc[0-6].d)このプロセスは徐々に新しいメソッドに置き換えられています(upstartと呼ばれます)。しかし、私はそれをまったく検討していません。投稿内のリンクは、これの一部に対応しています。
ジョー

回答:


55

あなたのcelerydスクリプトはおそらく実行可能ではありません。それsudo /etc/init.d/celerydがを返す理由ですcommand not found。そのため、最初に実行可能にする必要があります。

これを行うには、次のコマンドを実行します。

sudo chmod 755 /etc/init.d/celeryd
sudo chown root:root /etc/init.d/celeryd

最初の行はアクセス許可を-rwxr-xr-xに変更し、2行目はファイルの所有者とグループ所有者がroot

これが完了したらsudo /etc/init.d/celeryd start、デーモンの起動に使用する必要があると思います。


70

スクリプトを所定の場所にコピーするときは、実行可能にし、rootが所有することを忘れないでください。

sudo chmod +x /etc/init.d/celeryd
sudo chown root:root /etc/init.d/celeryd

それをインストールしたら、起動時に自動的に起動するように設定できます:

sudo update-rc.d celeryd defaults
sudo update-rc.d celeryd enable

これが最良の回答であり、を指す原因と見なされupdate-rc.dます。
MAChitgarha

3

command not foundを実行したときにエラーが発生した場合insservは、次のコマンドを実行して修正できます。

sudo ln -s /usr/lib/insserv/insserv /sbin/insserv

次に、insserv -hまたはman insservヘルプを参照してください。

また、試してみることができます:

sudo update-rc.d celeryd defaults

ソース:https : //askubuntu.com/a/334043/147044


1

これは、起動時にデーモンを自動起動するコマンドシーケンスです。

sudo cd /etc/init.d
sudo chown root:root celeryd
sudo chmod 755 celeryd
sudo ln -s /usr/lib/insserv/insserv /sbin/insserv
sudo insserv celeryd
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.