初心者も簡単ブログにコピペだけ!1クリック高単価7〜42円。登録無料最短1分でスタート。

OSXにMysqlをインストール後、シャットダウンが遅い場合の改善方法。

以前、startupItemとしてshを登録して、シャットダウン時にmysqladmin shutdownを実行させてシャットダウン時の待ち時間を短縮する方法を掲載しましたが、今回はLogoutHookを使って任意のシェルスクリプトを実行する方法を紹介します。

LoginHookとLogoutHookについて

ログインフックとログアウトフックとはそれぞれのタイミングで任意のスクリプトなどを実行する為の機能です。

LoginとLogoutHookの確認

まずは現状loginoutHookの状況を確認します。
なにもしてないのであれば未設定になっているはずです。

ターミナルに下記コマンドをコピペします。

sudo defaults read  com.apple.loginwindow LoginHook
sudo defaults read  com.apple.loginwindow LogoutHook 

設定がされてない場合 does not existと表示されます。

Library/scripts/mysqlstopディレクトリを作る

ライブラリの中のスクリプツディレクトリ内にわかりやすくmysqlstopというディレクトリを作成します。

mysql.server stopのシェルスクリプトを作る

Library/scripts/mysqlstop/mysqlstop.sh

viでもテキストエディタでもよいので、下記の内容のファイルを作ります。

#!/bin/bashの部分は自分で使用しているシェルのパスにかえてください。
筆者の環境はzshをhomebrewで入れてるので#!/usr/local/bin/zshです。

ファイル名はわかりやすいようにmysqlstop.shにしました。

#!/bin/bash
mysql.server stop

chmod +x で実行権限を追加する

上記で作成したファイルに対して実行権限を追加します。

chmod +x /Library/Scripts/mysqlstop/mysqlstop.sh  

LoginHookを使えるようにする

sudo defaults write com.apple.loginwindow LogoutHook /Library/Scripts/mysqlstop/mysqlstop.sh 

再起動などを試す

筆者の環境では、mysqlのプロセスがシャットダウン時に20秒待ってからシャットダウンが掛かっていましたが、LogoutHookでシャットダウン時にmysql.server stopを実行する用にしてから2秒でシャットダウンがかかるようになりました。

ダイレクト特集ページ用バナー(ダウンロード版)

初心者も簡単ブログにコピペだけ!1クリック高単価7〜42円。登録無料最短1分でスタート。