请教一个自启动脚本问题

软件和网站开发以及相关技术探讨
回复
flygis
帖子: 26
注册时间: 2006-12-11 16:57

请教一个自启动脚本问题

#1

帖子 flygis » 2022-09-13 14:47

RT,我写了一个后台应用通过socket接收到指令后,会调用另外一个窗口程序来显示收到的数字。如果是用命令行运行socket进程,可以正常运行窗口程序。如果把这个命令行添加到rc.local里面,socket进程会运行起来,也能看到日志显示接收到了指令,但是运行窗口程序失败。
使用如下方式调用窗口程序:

代码: 全选

char tmpparm[1024];
snprintf(tmpparm,1024,"/usr/local/SocketRCV/ShowCode %s" ,valuestring);
system(tmpparm);
查看进程信息,脚本调用和rc.local调用都是一样的用户组,文件都是给了777权限也不行
头像
astolia
论坛版主
帖子: 6452
注册时间: 2008-09-18 13:11

Re: 请教一个自启动脚本问题

#2

帖子 astolia » 2022-09-15 21:28

图形界面环境下是会创建一些环境变量来告知程序在哪里显示窗口的
rc.local在运行时,一般图形界面还没启动,所以程序得不到这个环境变量,也就没办法显示窗口
x11环境的变量名是DISPLAY,wayland环境的变量名是WAYLAND_DISPLAY,你要用setenv把对应变量的值设置好才行
或者你把程序加到图形界面的自启动程序里来启动,这样自然会继承对应的环境变量,不需要在代码里设置了
回复