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デーモンは起動しません。私は何を逃したことがありませんか?
答え1
それでは、Ubuntuの答えを見てみましょう。
これはUbuntu Linuxの問題です。これでバージョン15がリリースされました。 Ubuntuの世界は現在システム化されています。しかし、バージョン15以前でも、Ubuntuの世界には新しいスタートアップがありました。 System 5rc
スクリプトを書く理由はまったくありません。スタートそこから。
upstart と systemd は両方ともすべての「サービス制御」を担当します。何をすべきかサービスの説明。
システム
デプロイするシステムサービスユニットは /etc/systemd/system/mailcatcher.service
次のとおりです。
[単位] 説明=ルビーメールキャッチャー ドキュメント=http://mailcatcher.me/ [提供する] #Ubuntu / Debianルール: 環境ファイル=-/etc/default/mailcatcher タイプ=シンプル ExecStart=/usr/bin/mailcatcher --foreground --http-ip 192.168.50.10 [インストールする] WantedBy =マルチユーザー。ターゲット
これは自動的にすべてのシステムコントロールの1つを取得します。たとえば、次のようになります。
systemctl enable mailcatcher.service
起動時にサービスが自動的に開始されるように設定します。systemctl preset mailcatcher.service
ローカルポリシーで許可されている場合は、起動時にサービスが自動的に開始されるように設定してください。systemctl start mailcatcher.service
サービスを手動で開始します。systemctl status mailcatcher.service
サービスの状態を表示します。
突然現れる
Upstartは似ており、Fdeloper LLCのupstart作業ファイルを問題に合わせて変更すると、次の結果が表示されます/etc/init/mailcatcher.conf
。
説明「メールキャッチャー」 ランレベルで始めましょう [2345] 実行レベルで停止しました。 更生 /usr/bin/mailcatcher --foreground --http-ip=192.168.50.10 実行
これにより、自動的にすべての起動制御の1つが提供されます。たとえば、次のようになります。
initctl start mailcatcher
サービスを手動で開始します。initctl status mailcatcher
サービスの状態を表示します。
ボーナス daemontools セクション
ただ楽しさで、WWW検索を通じてここに到達したdaemontoolsスイートのすべてのユーザーを楽しませ、rc
スクリプトがSystem 5で起動しない別の理由を示すために、systemdサービスデバイスを次のように実行しました。noshツールセット convert-systemd-units
このコマンドは、次の daemontools ファミリ実行スクリプトを生成します。
#!/空/ノッシュ #./mailcatcher.serviceで生成されたファイルを実行します。 #RubyMailCatcher chdir/ 読み取り-conf --oknofile /etc/default/mailcatcher /usr/bin/mailcatcher --foreground --http-ip 192.168.50.10
実際、convert-systemd-units
このコマンドは完全なノッシュを生成します。サービスパッケージ目次。/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
/etc/rc.conf{,.local}
ローカル設定(システムスタイルのプリセットまたは)で許可されている場合、起動時にサービスが自動的に開始されるように設定します。
でもスタートシステム5rc
ファイルとして。
見ているこのテンプレートrc
SaltStackはSystem 5スクリプトに使用されます。 SaltStackパラメータ化を削除しても、まだ59行のシェルスクリプトコードが残ります。再び。 Seradaはあなたがそれを再作成した部分を指摘しました。
システム単位ファイルの長さは11行です。起動ジョブファイルには8行があります。 noshrun
スクリプトは6です。彼らはあなたのためにすべての開始/停止/状態メカニズムを実行します。rc
特にUbuntu Linuxでは、System Vで起動しないでください。
追加読書
- メールキャッチャー設定。 2014年10月21日。ハッカーサーバー。 FIDROP制限。
- ジェームズハントとクリントバイラム(2014)。 「公共施設」。 ヌボリッチレシピ。
- ジョナサンデボインポラード(2014)。実行中のスクリプトとサービスユニットを並べて表示します。。一般的な答え。
答え2
起動中にコマンドを実行するときは、必ずしもコマンド環境にアクセスする必要はありません。コマンドの完全修飾名を使用する必要があります。
起動時に動作しません
mailcatcher --http-ip 192.168.50.10
起動時の動作
/usr/bin/mailcatcher --http-ip 192.168.50.10
私のスクリプトは今機能しますが、後で作業を開始および停止できるようにサービス制御を追加する予定です。