ウェブ日記
2013年01月24日(木) evilwmの再起動シェルスクリプト
evilwmの再起動シェルスクリプト

evilwmとfirefoxを使っていて、 後者のウィンドウを閉じたら前者が落ちて困っていた。 ウィンドウマネージャが落ちたら、 場合によってはfirefoxのような他のアプリケーションを終了させながらktermなどのターミナルを露出させ、 そこからウィンドウマネージャを再起動させねばならないので面倒。 何か良い方法は無いかと思いながらネットで情報を漁ったら、 アプリケーションを自動で再起動させるシェルスクリプトを書く方法を知る。 こちらこちらのブログを参考にして書いたのがこれ。

#!/bin/sh
while true
do
  isAliveEwm=`ps -ef | grep "/evilwm" | grep -v grep | wc -l`
  if [ $isAliveEwm = 0 ]; then
    /usr/bin/evilwm -term kterm &
  fi
  sleep 5
done

1行目のshのパスはコンピュータにより異なる。 4行目はpsコマンドで現在のプロセスを表示、 最初のgrepコマンドでevilwmのプロセスを表示 (最初のスラッシュは死んだevilwmのプロセスを除くためにパスの一部として加えている)、 次のgrepコマンドで引数にevilwmを持ったgrepコマンドのプロセスを除き、 wcコマンドで行数を表示。 該当するpsコマンドの結果が0行だったら(5行目)evilwmが落ちたことを表しているので、 evilwmを(再)起動させる(6行目)。 プロセスのチェックは5秒おきに行う(2行目と8行目)。

このシェルスクリプトを実行可能にして、~/.xinitrcにevilwmの代りにシェルスクリプトの名前--私はewmcheck.shとした--を書いておけば、 X起動時自動で起動され、evilwmも起動される。

PC-Unixは手製の「道具」が作りやすくていいよね。


ハッピーパイパー
前の日記次の日記目次 古い日記(2000年9月〜2006年12月)の目次メールホーム