1、现象
在/etc/rc.local里
source /etc/profile cd /home/wisetron/cpp/src/784_main sudo ./auto_start_matlab.sh &
source /etc/profile是为了将matlab需要的依赖库加入环境变量,然后进入matlab可执行文件路径,在拉起进程
2、现象
重启linux拉起进程失败,ps查看进程不存在
3、原因分析
source /etc/profile将依赖库加入环境变量失败,被其他加载环境变量的脚本冲刷掉了,通过打印环境变量可验证
4、解决
将这几行代码放在优先级高的开机脚本:~/.bashrc中
source /etc/profile procnum=` ps -ef|grep pic_main |grep -v grep|wc -l` if [ $procnum -eq 0 ] ; then nohup /home/wisetron/cpp/src/784_main/pic_main & fi
首先加载环境变量,然后判断进程是否存在,如果不存在则拉起来
ps:
此方法会导致每开一个shell终端都会执行一次bashrc中的内容,所以加了一个进程是否存在的判断