程序运行需要的环境变量,可以通过提前设置:
一、在系统启动项(rc.local)中export增加设置永久环境变量;
二、程序通过守护脚本启动(sh脚本或者bash脚本)时,可先通过export设置临时环境变量,一般用于嵌入式守护脚本或者服务器进程等;
但以上两种办法都可能存在脚本设置,运行一段时间后,环境变量消失的情况,必须重启系统或者脚本;所以查到QProcess在程序中设置相关的环境变量,再调用可执行程序插件。
QStringList evn_paths = QProcess::systemEnvironment(); //获取系统完整环境变量 evn_paths << “TMPDIR=/home/Ubuntu/APP/bin”; //格式: 环境变量名=绝对路径 process.setEnvironment(evn_paths); //重新设置一遍所有的环境变量,包括新加入的TMPDIR process.start(“myapp”); //执行可执行插件进程
另在添加系统已有的环境变量时,可先通过QProcessEnvironment 获取系统变量有效值,再附加新的环境变量文件夹路径,并且生效;
QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); //获取系统完整环境变量
env.insert(“TMPDIR”, “C:MyApptemp”); //增加新的环境变量,绝对路径
env.insert(“PATH”, env.value(“Path”) + “;C:Bin”); //在已有的环境变量中附加新的绝对路径,注意分号“;”
QProcess process;
process.setProcessEnvironment(env);
process.start("myapp");
注:Q转载Q请Q注明Q出处。



