それでは、Ubuntuの答えを見てみましょう。

それでは、Ubuntuの答えを見てみましょう。

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/mailcatchernoshを使用してシステムにインストールすると、このディレクトリ(依存関係の指定と情報の並べ替え)を使用して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ファイルとして。

見ているこのテンプレートrcSaltStackはSystem 5スクリプトに使用されます。 SaltStackパラメータ化を削除しても、まだ59行のシェルスクリプトコードが残ります。再び。 Seradaはあなたがそれを再作成した部分を指摘しました。

システム単位ファイルの長さは11行です。起動ジョブファイルには8行があります。 noshrunスクリプトは6です。彼らはあなたのためにすべての開始/停止/状態メカニズムを実行します。rc特にUbuntu Linuxでは、System Vで起動しないでください。

追加読書

答え2

起動中にコマンドを実行するときは、必ずしもコマンド環境にアクセスする必要はありません。コマンドの完全修飾名を使用する必要があります。

起動時に動作しません

mailcatcher --http-ip 192.168.50.10

起動時の動作

/usr/bin/mailcatcher --http-ip 192.168.50.10

私のスクリプトは今機能しますが、後で作業を開始および停止できるようにサービス制御を追加する予定です。

関連情報