为什么这个脚本不会在启动时运行?
当我手动启动它时,此脚本可以正常工作。 我怎样才能让它在启动时运行? 该脚本的function是让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
基本上有一些图形元素在屏幕上闪烁半秒钟,但没有其他迹象可以看到脚本,如果它被杀死, Docky
不会重新启动。
如何使这项工作? 我相信这是非常基本的。
我在Ubuntu 14.04上。
使用.desktop文件中的路径
问题是启动应用程序在~/.config/autostart
创建一个.desktop
文件
在.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,就是这样。 这将检查docky是否每2分钟运行一次,否则它将开始停靠。