このinit.dスクリプトが終了時に時々実行されないのはなぜですか?

このinit.dスクリプトが終了時に時々実行されないのはなぜですか?

私はDebian 10バスターを使用しています。

このinit.dスクリプトに何が問題なのかわかりませんか?サーバーがダウンしても実行されない場合があります。

サーバーがerror_log失敗した場合、SIGHUP以下はこの動作を説明するリンクです。SIGHUPシグナルに対するMySQLサーバーの応答

このinit.dスクリプト/etc/init.d/mysql私が使っているのは直接ですMySQL 公式リリース deb私は直接いくつかの修正を加えましたが、その内容はファイルに記録されています。

これはソースmysql-helpersファイルinit.d スクリプトで参照されます。

実行中のMySQLの停止/開始/再起動いいえSIGHUPが生成されますが、ログ情報なしでスクリプトがブロックされることがあります。 .pidは消えたが、MySQLは自動的に起動しなかった。

苦しい部分は時々終了すると実行されますが、時には実行されません。 75%は実行されず、25%は実行されます。

質問の別の部分は次のとおりです。Debian 10でMySQL 5.7.37で動作するinit.dスクリプトをどこで見つけることができるかを知っている人はいますか?

ベストアンサー1

デーモンを管理するためにsystemdを試してみてはいかがですか? Debian Jessie 以来、より簡単で利用可能です。 /etc/systemd/system/servicemysql.service

[Unit]
Description=MySQL task
DefaultDependencies=no
Conflicts=reboot.target
Before=poweroff.target halt.target shutdown.target
Requires=poweroff.target

[Service]
Type=oneshot
ExecStart=/path/to/your/script.sh
ExecReload=/usr/bin/kill -HUP $MAINPID
RemainAfterExit=yes

[Install]
WantedBy=shutdown.target

ファイルに0644権限を付与し、すべての変更後に実行することを忘れないでください。

systemctl daemon-reload

その後、デーモンの実行を有効にします。

systemctl enable <name of the service>

そして実行を始めましょう:

systemctl start <name of the service>

サービスが実行されていることを確認するには、次の手順を実行します。

systemctl status <name of the service>

おすすめ記事