ubuntu18 关于程序升级的傻瓜式操作.

ubuntu18 关于程序升级的傻瓜式操作.

应用环境是这样的, 在一个ubuntu18的机器上运行着一个程序,
程序有可能要升级, 升级就是把U盘中的一个升级包,解压缩到磁盘上的一个固定位置就可以了.

但是,操作的人可能不懂linux, 也不会命令行操作, 甚至不会解压缩文件. 所以要求:

  1. 在界面上放一个升级图标,
  2. 双击这个桌面图标, 自动从U盘解压缩文件,覆盖原来的文件
  3. 杀死原运行文件,执行升级后新运行文件.

通过分析以上需求,我们分两部分进行,
第一: 编写一个脚本文件,完成解压升级,关闭启动程序的功能
脚本是灵活的,根据需求去完成任何复杂的功能, 下边是我的一个实例,功能见注释:

$cat update.sh

#!/bin/bash

# 判定U盘是否存在, 若存在,把U盘mount 到一个固定位置,需要sudo 密码!!
# 用/dev/sdb1 来判断是否有U盘插入,虽不是很准确,但尚可使用!
if [ -b /dev/sdb1 ]; then
	sudo umount /dev/sdb1
	sudo mount -t vfat /dev/sdb1 /opt/mnt
# 判定升级的文件个数,不为1提示错误
	output=$(ls /opt/mnt/* |grep monitor_all |wc -l)
	if [ $output -ne 1 ]
	then
		echo "U盘升级文件只能是一个,你的是 $output 个"
		sudo umount /dev/sdb1
		exit 1
	fi
#解压缩文件
	zipfile=$(ls /opt/mnt/* |grep monitor_all)
	echo "unzip -o $zipfile -d /opt"
	unzip -o $zipfile -d /opt
	sudo umount /dev/sdb1
	echo "完成1"
#停止旧程序,启动新程序
	killall monitorAll modbusmaster
	/opt/S85qt.sh
fi

echo "完成2"
read

第二: 为这个执行脚本见一个桌面快捷方式(.desktop)
方法: 随便copy一个desktop 文件做模板, 填充对应的项就可以了.
一般别的desktop 文件比较长,而我这个比较短,所以记录一下, 如下:
$cat update.desktop

[Desktop Entry]
Name = 升级程序
Comment = update teckwin program
Exec = /opt/update.sh
Icon = /opt/image/logo_3.png
Terminal = true
Type = Application

这是标准格式,各个key 值意义一目了然,
在桌面上显示的名字 Name = 升级程序
在桌面上显示的图标 Icon = /opt/image/logo_3.png
执行的应用程序 Exec = /opt/update.sh
这个脚本是要启动控制台的,故Terminal = true
它的类型是一个应用程序(可执行) Type = Application
注释Commnent, 点击属性时可以看到

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值