ウェブ日記
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は手製の「道具」が作りやすくていいよね。 |