私のスクリプトは、Ubuntuのvagrantボックスで起動時に実行されていません。
私のスクリプトは次のようになります–
#!/bin/bash
# /etc/init.d/mailcatcher
### BEGIN INIT INFO
# Provides: scriptname
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
mailcatcher --http-ip 192.168.50.10
ファイルに対する私の権限は次のようになります–
-rwxr-xr-x 1 root root 352 Apr 30 09:59 mailcatcher.sh
コマンドを実行します–
sudo update-rc.d "mailcatcher.sh" defaults
スクリプトを手動で実行すると、スクリプトが機能し、mailcatcherが起動します。コンピュータを再起動すると、mailcatcherデーモンが起動しません。何か足りないのですか?
承認された回答:
そしてUbuntuの答えです。
これはUbuntuLinuxの質問であり、バージョン15がリリースされました。 Ubuntuの世界はsystemdになりました。しかし、バージョン15より前でさえ、Ubuntuの世界は新興国でした。 System 5 rc
を書く理由は本当にありません スクリプト;そして確かに開始する正当な理由はありません そこから。
upstartとsystemdの両方がすべての「サービス制御」を実行します。あなたがする必要があるのはサービスを説明するだけです 。
systemd
/etc/systemd/system/mailcatcher.service
に配置されるsystemdサービスユニット 、は
[Unit] Description=Ruby MailCatcher Documentation=http://mailcatcher.me/ [Service] # Ubuntu/Debian convention: EnvironmentFile=-/etc/default/mailcatcher Type=simple ExecStart=/usr/bin/mailcatcher --foreground --http-ip 192.168.50.10 [Install] WantedBy=multi-user.target
これにより、次のようなすべてのsystemdコントロールが自動的に取得されます。
-
systemctl enable mailcatcher.service
起動時にサービスが自動開始されるように設定します。 systemctl preset mailcatcher.service
ローカルポリシーで許可されている場合は、起動時にサービスが自動開始されるように設定します。-
systemctl start mailcatcher.service
手動でサービスを開始します。 -
systemctl status mailcatcher.service
サービスステータスを確認します。
upstart
Upstartも同様であり、Fideloper LLCのupstartジョブファイルをこの質問に変更すると、/etc/init/mailcatcher.conf
にこれが与えられます。 :
description "Mailcatcher" start on runlevel [2345] stop on runlevel [!2345] respawn exec /usr/bin/mailcatcher --foreground --http-ip=192.168.50.10
これにより、次のようなすべての起動コントロールが自動的に取得されます。
-
initctl start mailcatcher
手動でサービスを開始します。 -
initctl status mailcatcher
サービスステータスを確認します。
ボーナスdaemontoolsセクション
キックのために、WWW検索を介してこれに到達するdaemontools-family-usingの人々の娯楽のために、そしてSystem 5 rc
から始めないもう一つの理由を示すために スクリプト、noshツールセットのconvert-systemd-units
を介してそのsystemdサービスユニットを実行しました 次のdaemontools-familyrunスクリプトを生成するコマンド:
#!/bin/nosh #Run file generated from ./mailcatcher.service #Ruby MailCatcher chdir / read-conf --oknofile /etc/default/mailcatcher /usr/bin/mailcatcher --foreground --http-ip 192.168.50.10
実際、convert-systemd-units
コマンドは、noshサービスバンドル全体を生成します ディレクトリ。依存関係と順序情報を指定するそのディレクトリを使用して、/var/sv/mailcatcher
としてインストールします。 nosh service-manager
を備えたシステムで 次のようなすべてのnoshコントロールを取得します:
-
system-control enable mailcatcher.service
起動時にサービスが自動開始されるように設定します。 -
system-control start mailcatcher.service
手動でサービスを開始します。 system-control status mailcatcher.service
サービスステータスを確認します。system-control preset mailcatcher.service
ローカル構成(systemdスタイルのプリセットまたは/etc/rc.conf{,.local}
の場合、起動時にサービスが自動開始されるように設定します )許可します。
始めないでください System 5 rc
を使用 ファイル。
SaltStack for System 5 rc
で使用されるこのテンプレートを見てください スクリプト。シェルスクリプトコードの59行であるSaltStackのパラメーター化が削除されたとしても、そのほとんどは一般的な定型文であり、再発明して書き直す必要があります。また。そして、Celadaは、あなたがそれをひどく再発明した場所をすでに指摘しています。
systemdユニットファイルの長さは11行です。 upstartジョブファイルは8行です。 nosh run
スクリプトは6です。そして、彼らはあなたのためにすべての開始/停止/ステータスの仕組みを行います。 System V rc
から始めないでください 、特にUbuntuLinuxではそうではありません。
さらに読む
- メールキャッチャーの設定 。 2014-10-21。ハッカーのためのサーバー。フィデロパーLLC。
- ジェームスハントとクリントバイラム(2014)。 「ユーティリティ」。 Upstart Cookbook 。
- ジョナサンデボインポラード(2014)。 実行スクリプトとサービスユニットを並べて表示します。 。頻繁に与えられる回答。