このスクリプトは、手動で起動すると完全に機能します。起動時に実行するにはどうすればよいですか?スクリプトの機能は、クラッシュの場合にDocky
を取得して自動再起動することです。
次のようなスクリプトを作成しました。
gedit ~/process_monitor.sh
以下に貼り付けます( Ask Ubuntuで見つけました ):
#!/bin/bash
if [[ -z "$1" ]];then
echo "ERROR: must specify program"
exit 1
fi
while (( 0 == 0 ));do
$@ &
pid=`jobs -l | awk '{print $2}'`
wait $pid
done
ファイルを保存しました。
許可を設定します。
chmod a+x ~/process_monitor.sh
今、このように実行すると、完全に機能します:
~/process_monitor.sh docky
ただし、起動アプリケーションに次を追加しても、起動時にスクリプトが起動しません。そうかもしれませんが、スクリプトは機能しません。
/bin/bash ~/process_monitor.sh docky
基本的には、画面上で0.5秒間点滅するグラフィカル要素がありますが、スクリプトの他の兆候は見られず、Docky
は殺されても再起動しません。
これを機能させる方法は?非常に基本的なものだと思います。
Ubuntu 14.04を使用しています。
問題は、スタートアップアプリケーションが.desktop
ファイルを~/.config/autostart
に作成することです
.desktop
ファイルでは、~
のような相対パスまたは変数パスを使用できません。代わりに絶対パスを使用します。
/bin/bash /absolute/path/to/process_monitor.sh docky
これはより良いアプローチです
crontab -e
を実行し、この行を一番下に挿入します
*/2 * * * * if [ ! `pgrep docky` ] ; then /usr/bin/docky; fi
/usr/bin/docky
コマンドがdockyを起動するかどうかを確認します、それだけです。これにより、2分ごとにdockyが実行されているかどうかが確認され、実行されていない場合はdockyが開始されます。