当我手动启动时,此脚本运行正常。如何让它在启动时运行?该脚本的功能是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。
答案1
使用 .desktop 文件中的路径
问题是启动应用程序.desktop
在~/.config/autostart
在.desktop
文件中,不能使用相对路径或变量路径,例如~
。请改用绝对路径:
/bin/bash /absolute/path/to/process_monitor.sh docky
答案2
这是更好的方法
运行crontab -e
在底部插入此行
*/2 * * * * if [ ! `pgrep docky` ] ; then /usr/bin/docky; fi
检查/usr/bin/docky
命令是否启动了 docky,就是这样。这将每 2 分钟检查一次 docky 是否正在运行,如果没有,它将启动 docky。