Debian 9 stableを使用してNGINXプロセスと海岸壁ファイアウォールを起動する前に、カスタムシェルスクリプトを起動したいと思います。
- 初期化タスクの実行
/etc
NGINX構成、海岸壁構成、およびオーバーレイをオーバーレイするためにディレクトリ(overlayfs)をマウントします。/etc/hosts
- スクリプトもで終わります
sync
。良い考えなのかはわかりません。
systemctl リスト依存関係
default.target
● ├─display-manager.service
● ├─systemd-update-utmp-runlevel.service
● └─multi-user.target
● ├─console-setup.service
● ├─cron.service
● ├ ─dbus.service
● ├─dropbear.service
● ├─myservice.service ..] ● ├─basic.target ● │ ├─-.mount ● │ ├─myservice.service <-- マイサービス実行後
myservice.service 試す 1
[単位]
説明=私の開始 serviceRequires
=shorewall.service nginx.service
Before=shorewall.service nginx.service
[サービス]
RemainAfterExit=yes
ExecStart=/usr/local/bin/myservice start
ExecStop=/usr/local/bin /myservice停止
[インストール]
WantedBy=multi-user.target
WantedBy=basic.target
丸太:
Journalctl [...]
10月12日 11:31:43 server-dev nginx[448]: nginx: /etc/nginx/sites-enabled/defaultのアップストリーム "server-dev.com"の[emerg]ホストが見つかりません: 10月12日 33
11:31:43 server-dev nginx[448]: nginx: 構成ファイル /etc/nginx/nginx.conf テストに失敗しました <== NGINX: BAD
10月12日 11:31 :43 server-dev systemd[1] : nginx.service: 制御プロセスが終了しました。 code=exited status=1
Oct 12 11:31:43 server-dev systemd[1]: 高性能 Web サーバーとリバースプロキシサーバーを起動できません。
10月12日 11:31:43 server-dev systemd[1]: nginx.service: デバイスが障害状態に移行しました。
10月12日 11:31:43 server-dev systemd[1]: nginx.service: '終了コード'のため失敗しました。
Oct 12 11:31:43 server-dev systemd[1]: ターゲットマルチユーザーシステムに到達しました。
10月12日 11:31:43 server-dev systemd[1]: ターゲットグラフィックインターフェイスに到達しました。 10月12日 11:31:43 server-dev systemd
[1]: システム実行レベルの変更に対する UTMP アップデートを開始します。
のシステムUTMPアップデートを開始します。
10月12日 11:31:43 server-dev server[423]: DO: サーバー開始 DONE <== スクリプト終了 myservice 10月12日
11:31:43 server-devshorewall[449]: Shorewall 5.0.15.6 コンパイル中.. < == SHOREWALL: 確認
10月12日 11:31:44 server-devshorewall[449]: /etc/shorewall/shorewall.conf 処理中...
10月12日 11:31:44 server -devshorewall[ 449]: モジュールをロードしています。 ..
myserviceを実行した後、Shorewallシステムが正しく起動します。 Nginxはmyserviceの実行中に適切に上書き(上書き?)される前にほとんど起動されるため、/etc
正しく初期化されません。
myservice.service 2回試行
私も変えようとしていました。
[インストール]
WantedBy=default.target
そして変化
[単位]
before=multiuser.target
それも動作しません。
myserviceが実行された後にnginxとshorewallが起動することを確認する方法は?
ベストアンサー1
systemdサービスタイプを指定しない場合、デフォルト値はですType=simple
。これは、基本サービスプロセスが分岐したとき(まだコマンドを実行していないときExecStart
)、サービスが開始されたと見なされることを意味します。代わりに、サービスの開始を考慮する前にコマンドが終了するのを待つType=oneshot
この方法を使用できます。詳細はExecStart
参照してください。man systemd.service