给QT程序升级的一种办法

远程无人值守的机器,需要升级的时候,如果需要替换主程序,可以先下载新的主程序(放到临时目录).确保下载的程序完整以后,将老程序替换成新程序.然后老程序(正在运行的程序)启动外部程序(一般是一个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

以上是我自己的一点简单实现,文中没有考虑更多复杂环境的情况,仅是一个思路参考.


你可能感兴趣的:(给QT程序升级的一种办法)