需求
需要在开机的时候打开一个程序,并且将程序运行的状态显示在终端上。
方案:使用gnome-session-properties添加开机自启动程序
1.alt+F2,输入gnome-session-properties
2、在command栏里输入我们要添加的程序:gnome-terminal -x bash -c "/home/wy/work/watch_dog/start_watchdog.sh"
关机重启,发现可以打开终端,程序也可以跑,但是程序里打开文件失败,原因是没有以root权限运行程序。我们手动运行程序加sudo需要输入密码,我们这里通过SUDO_ASKPASS进行自动输入密码。
3.创建密码文件_PWD_TEMP_,写入如下内容并添加可执行权限,将其放到/home/wy/work/watch_dog/:
#! /bin/bash# add your ownpasswordecho password
4.在start_watchdog.sh中添加如下代码
export SUDO_ASKPASS=./PWD_TEMP
5.在执行程序时,加上*sudo -A xxx*,此时不需要输入密码,程序也有了root权限。
如此完美解决需求,在机器启动登录后,会打开一个终端,然后在终端里自动以root权限运行程序。
注:当脚本和程序在一个目录下时,通过执行脚本来执行程序时会有路径的问题,可以通过在脚本里加cddirname $0
解决。