GNU/Linux >> Linux の 問題 >  >> Linux

Upstart :非 upstart プロセスの後にサービスを開始する

いくつかのオプションがあります:

1) mysql に Upstart にイベントを発行して開始したことを通知させる

initctl emit mysql-started

これは initctl を追加することで処理できます /etc/init.d/mysql への呼び出し .

2) 通常の SysV ランレベルから mysql を無効にし、それを開始するラッパー Upstart ジョブを作成します (これは停止を処理しません - 単なる例です):

cat >>/etc/init/mysql-sysv.conf<<EOT
  # wait for SysV job to finish
  start on stopped rc
  exec /etc/init.d/mysql start
EOT

次に、ジョブを「start on started mysql-sysv」にします ".

ここでの問題は、誰か (または何らかのシステム ツールが自動的に) を再度 /etc/rc?.d に追加すると、問題が発生することです。 元の /etc/init.d/mysql へのリンク サービススクリプト。また、mysql は しばらく待つまで実際には準備ができていないことに気付くかもしれません。 メインpidが開始されました。データベースは、開始後も「オンライン」になるまでに時間がかかる場合があるため、問題があります (トランザクション ログの再生など)。

3) 「停止した rc で開始」(つまり、すべての SysV ジョブが終了したと主張したときに開始) する upstart ジョブ (「ウェイター」) を作成し、mysql の準備が整うのを待ってポーリングし、終了します。あなたの仕事を「停止したウェイターで開始」してください。

4) mysql を Upstart ジョブに変換します (最良のオプション)。アップスタートの mysql 構成の開始点がここにあります:https://github.com/devo-ps/init-scripts/tree/master/mysql/ubuntu


Linux
  1. MySQL内でプロセスを停止する方法

  2. CentOS 8でサービスを開始、停止、または再起動します-ステップバイステップのプロセス?

  3. Linux –プロセス開始後に/ proc / pid / environを変更しますか?

  1. Centos – Systemdは開始直後にサービスを終了しますか?

  2. Thesql Community Server(5.7)の起動に失敗しましたか?

  3. CentOS 7 で postgresql サービスを開始できません

  1. 別のTtyでプロセスを開始しますか?

  2. タイムゾーンで開始時間を処理しますか?

  3. データ ディレクトリの再配置後に mysql が起動しない