VNCサーバーが落ちても自動で復活させる方法(cygwin+cron版)

2011-02-15

Windowsでタスクを使った方法を前回解説しましたが、Linux風にcronを使った方法も紹介しておきましょう。

Cygwinのインストール

Cygwinのサイトから最新版をダウンロードしてインストールします。 インストール先はデフォルトの「C:cygwin」です。 その際に、パッケージの追加で以下のパッケージにチェックを入れて追加インストールしておきます。

  • openssh (Netカテゴリ)
  • cron (Adminカテゴリ) データベースのスケジュールバックアップ用に利用します。
  • cygrunsrv (Adminカテゴリ:標準でインストールされます) cronを実行させるために利用します。
  • vim (Editorsカテゴリ) cron設定ファイルの書き換えに利用します。

パッケージがインストールされたかチェック

インストールが完了したらCygwinを起動して以下のコマンドを入力し、パッケージがインストールされたかどうかをチェックします。

$ cygcheck -cd openssh cron cygrunsrv vim
Cygwin Package Information
Package Version
cron       4.1-6
cygrunsrv  1.34-1
openssh    5.0p1-1
vim        7.1-1

cronをWindowsのサービスに登録

次にcygrunsrv (NT/W2K service initiator) コマンドを使用して、cron をサービスに登録します。

$ cygrunsrv --install cron --path /usr/sbin/cron --args -D

[設定]-[コントロールパネル]-[管理ツール]-[サービス] から、cron がサービスに登録されたことを確認します 。

Windows_service_cron.jpg

cronサービスの開始

cronサービスを開始します。

$ cygrunsrv --start cron

cronが起動したことを確認します。

$ ps -ef | grep cron
SYSTEM    4908    4472  ?  17:25:33 /usr/sbin/cron

止めたい・削除したいときは?

cygrunsrv でサービスを登録すると default では OS 起動時にサービスも自動起動します。

手動起動に切り替えるには一度サービスを抹消し、手動起動を指定してもう一度インストールします。

$ cygrunsrv --stop cron
$ cygrunsrv --remove cron
$ cygrunsrv --install cron --path /usr/sbin/cron --args -D --type manual

VNCを起動させるシェルスクリプトを作成

VNCのサービス(VNC Server)は前回の記事でインストールされていると思いますので、VNC Server サービスを起動するためのシェルスクリプト(vnc_launcher.sh)を「/usr/local/bin」に作成します。

$ vi /usr/local/bin/vnc_launcher.sh

vnc_launcher.sh

#!/bin/sh
net start "VNC Server"

作成できたら、実行権限を与えます。

$ chmod 755 /usr/local/bin/vnc_launcher.sh

crontabへの登録

最後に作成したシェルスクリプトをcrontabに登録しましょう。

$ crontab -e

viエディタが起動するのでスケジュールを記述します。 今回は1分おきに起動チェックするようにしましょう。

* * * * * /usr/local/bin/vnc_launcher.sh

書けたらcrontabを保存して終了させます。

(コマンドモードで)
:wq (Enter)

これで登録が完了しました。 登録できたかどうかは以下のコマンドで確認します。

$ crontab -l

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

2011-02-15