远程无人值守的机器,需要升级的时候,如果需要替换主程序,可以先下载新的主程序(放到临时目录).确保下载的程序完整以后,将老程序替换成新程序.然后老程序(正在运行的程序)启动外部程序(一般是一个shell),注意在QT程序中启动另外一个shell的时候可以使用如下代码:
QProcess* pro = new QProcess(); pro->startDetached(QDir::currentPath()+"/myShell.sh"); exit(0);//主程序kill自己
而myShell.sh中的代码可以这样写:
#!/bin/bash pkill myApp echo " 等待启动中..." sleep 1 echo " 开始启动..." ./myApp& echo " 启动完毕..." exit
以上是我自己的一点简单实现,文中没有考虑更多复杂环境的情况,仅是一个思路参考.
时间: 2024-10-15 07:57:44