zoukankan      html  css  js  c++  java
  • matlab+linux开机启动【具有环境依赖的程序适用】

    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:

    1、此方法会导致每开一个shell终端都会执行一次bashrc中的内容,所以加了一个进程是否存在的判断;

    2、我的matlab程序在自启之后会在指定路径下生成图片,但是实测发现通过上面的方式自启,生成图片失败,但是通过./拉起程序就成功。解决办法:

    把生成图片的路径全部改成绝对路径,就生成成功了。

    注意:

    这个方法不建议使用,因为只有在登录【shell或者界面】的才会调用bashrc,如果程序是非界面程序那么就不会登录,希望它开机自己静默执行,所以就触发不了这个脚本。

    最新解决办法:

    把/etc/profile里export的环境变量放在rc.lcoal里,然后拉起程序。




    长风破浪会有时,直挂云帆济沧海!
    可通过下方链接找到博主
    https://www.cnblogs.com/judes/p/10875138.html
  • 相关阅读:
    (转)vim重复命令
    (转)Linux 目录结构
    (转)Linux 文件权限
    (转)Linux查看用户及其权限管理
    linux banner命令
    redmine和svn server的部署
    OpenCV学习 7:图像形态学:腐蚀、膨胀
    OpenCV学习 6:平滑滤波器 cvSmooth()——2
    《将博客搬至CSDN》
    OpenCV学习 5:关于平滑滤波器 cvSmooth()函数
  • 原文地址:https://www.cnblogs.com/judes/p/14603349.html
Copyright © 2011-2022 走看看