通过命令行启动程序

通过命令行远程启动程序,和一般双击或通过登录桌面启动程序,有细微的环境差别。

启动服务

启动QT编写的后台服务,结果报错:could not connect to display。

首先,编译程序的时候,应当关闭GUI支持。这个属于编译参数错配。

其次,可以在启动之前设置环境变量。

export QT_QPA_PLATFORM=offscreen
×××

无法启动GUI程序

通过SSH启动GUI程序,结果报错:could not connect to display。

这是因为SSH环境中没有图形界面。必须告诉程序使用哪个显示器。可以通过设置环境变量来解决。

export DISPLAY=:0
×××

具体显示器的编号,可以实际登录一个有图形界面的账号后,执行echo $DISPLAY来查看。

启动程序卡住了?

远程启动程序和本机启动程序有一个差别:远程启动时,不能让远程session退出,否则程序会被挂起。
一般要用nohup模式启动。

nohup ./your_program &

另外注意,用nohup和&符号启动程序后,无法获知命令是否运行正常,必须在执行后进行单独的检查。可以通过查看日志关键词或者检查进程状态来确认。

Windows启动GUI程序无法启动

宿主进程可能是SYSTEM账号,无法访问桌面。可以使用psexec解决。

  1. 下载Sysinternals工具集,解压后找到psexec.exe

  2. 通过命令行启动程序

psexec -i -s your_program.exe
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容