あきらぼ

テック系ブログ

ARKサーバーを自動監視し再起動できるようにPythonでスクリプトを書く。

追記

ARKサーバーは最終的にはLinuxのサービス化させて自動監視・再起動できるようにしました。
以下の記事参照。
aki-lab.hatenadiary.com




こんにちは。

最近レンタルVPSを借りてリモートのサーバーでARKをプレイしているのですが、時々メモリ不足かなにかでARKサーバーが勝手に落ちてしまうことがありました。

時々確認してARKサーバーソフト再起動してをいたのですが面倒くさいので自動で定期的に監視して実行するようにPythonスクリプトとCrontabを使います。

作ったPythonスクリプトはこちら。

基本的にはsubprocessを使ってシステムコマンドをpythonから実行してARKの状態を監視、及び、再起動しています。

11行目のtop -n 1で現時点のプロセス一覧を取得。
その一覧にARKのプロセスであるShooterGamesの文字列があるかどうかを確認します。

なぜかプロセス取得時にプロセス名が一部分しか取得できなかったので「Shoot」の文字列だけで確認しています。

あとはプロセスの実行状態に合わせて、実行されていなければ再起動用のシェルスクリプトを実行して再起動します。

ここでのシェルスクリプト相対パスではなく絶対パスで定義しておくとcrontabで実行してもちゃんと動いてくれます。

次にcrontabで定期的にこのpythonスクリプトを実行するように設定します。
以下のコマンドでcrontabの設定を変更します。

crontab -e

勝手にテキストエディタが起動して編集できるので15分ごとに実行するように以下のように設定します。
作ったpythonスクリプトのパスを指定してください。

*/15 * * * * python3 /home/user/python/ARK_Server_Monitor/ARK_ServerMonitor.py

これであとは勝手に定期的に実行されるのでなにかの事情でARKが落ちても勝手に再起動してくれます。