私のスクリプトは、Ubuntuの下のvagrant boxで起動時に実行されていません。
私のスクリプトは次のようになります-
#!/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デーモンが起動しません。何か不足していますか?
これはUbuntu Linuxに関する質問で、バージョン15がリリースされました。 Ubuntuの世界はsystemdになりました。しかし、バージョン15より前でも、Ubuntuの世界には新興企業がありました。 System 5 rc
スクリプトを作成する理由は本当にありません。そしてそこからstartingする正当な理由は確かにありません。
Upstartとsystemdの両方がすべての「サービス制御」を行います。あなたがする必要があるのはサービスを説明するだけです。
/etc/systemd/system/mailcatcher.service
に配置されるsystemdサービスユニットは、
[Unit] Description = Ruby MailCatcher Documentation = http://mailcatcher.me/ [Service] #Ubuntu/Debian規約: EnvironmentFile =-/ etc/default/mailcatcher Type = simple ExecStart =/usr/bin/mailcatcher --foreground --http-ip 192.168 .50.10 [インストール] WantedBy = multi-user.target
これにより、次のようなすべてのsystemdコントロールが自動的に取得されます。
systemctl enable mailcatcher.service
は、起動時にサービスが自動的に開始されるように設定します。systemctl preset mailcatcher.service
は、ローカルポリシーで許可されている場合に、起動時にサービスが自動的に開始されるように設定します。systemctl start mailcatcher.service
サービスを手動で開始します。systemctl status mailcatcher.service
サービスのステータスを確認します。アップスタートも同様であり、Fideloper LLCのアップスタートジョブファイルをこの質問に変更すると、/etc/init/mailcatcher.conf
でこれが得られます。
説明「Mailcatcher」 ランレベル[2345]で開始 ランレベル[!2345]で停止 レスポーン exec/usr/bin/mailcatcher --foreground --http-ip = 192.168.50.10
これにより、次のようなすべてのアップスタートコントロールが自動的に取得されます。
initctl start mailcatcher
サービスを手動で開始します。initctl status mailcatcher
サービスのステータスを確認します。キックについて、WWW検索を介して到達するすべてのdaemontools-family-usingの人々の娯楽のため、およびSystem 5 rc
スクリプトで開始しない別の理由を示すために、私はそのsystemdサービスユニットを実行しました- noshツールセットconvert-systemd-units
コマンドを実行して、次のdaemontools-family実行スクリプトを作成します。
#!/ bin/nosh #。/ mailcatcher.service #Ruby MailCatcher chdir / read-confから生成された実行ファイル- -oknofile /etc/default/mailcatcher /usr/bin/mailcatcher --foreground --http-ip 192.168.50.10
実際、convert-systemd-units
コマンドはnoshservice bundleディレクトリ全体を生成します。 nosh /var/sv/mailcatcher
を備えたシステムに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}
)で許可されている場合に、起動時にサービスが自動的に開始されるように設定します。rc
ファイルをbeginしないでください。見てください このテンプレート SaltStack for System 5 rc
スクリプトによって使用されます。 SaltStackのパラメーター化が排除されたとしても、59行のシェルスクリプトコードであり、その大部分は汎用のボイラープレートであり、再発明し、書き直す必要があります。再び。そしてCeladaはあなたがそれをひどく再発明した場所をすでに指摘しました。
Systemdユニットファイルは11行です。アップスタートジョブファイルは8行です。 nosh run
スクリプトは6です。これらのスクリプトは、すべての開始/停止/ステータスメカニズムを実行します。特にUbuntu Linuxでは、System V rc
から始めないでください。
ブート中にコマンドを実行するとき、そのコマンドのenvにアクセスできるとは限りません。そのコマンドには完全修飾名を使用する必要がありました。
起動しない
mailcatcher --http-ip 192.168.50.10
起動時に機能
/usr/bin/mailcatcher --http-ip 192.168.50.10
これでスクリプトは機能しましたが、サービスコントロールを追加して、後で作業を開始および停止できるようにする予定です。