如果你的前端应用deb包部署在远程Ubuntu环境, 掌握如何远程部署及监控状态在特殊情况下还是很必要的。
一、 软件包的安装:从报错到成功
1. 基础安装命令
在远程终端,推荐使用 apt 而非 dpkg,因为 apt 会自动处理依赖。
sudo apt update && sudo apt install ./your_package.deb
2. 常见坑点:404 错误
按上面的指令执行一般没啥问题,不过由于有的包在安装过程中会下载相关依赖,可能会报错。
比如: 这里提示 Failed to fetch... 404 Not Found。
原因: 你的本地包索引太旧,系统找不到对应的远程依赖文件。
解决方法:
- 先执行
sudo apt update更新索引。 - 再执行
sudo apt --fix-broken install修复缺失的依赖。
修复后再执行上面安装包的命令就可以正常安装了。
二、 桌面图标:如何保证安装后能被“发现”
安装完包不代表桌面就一定会有图标。Linux 的桌面图标依赖于 .desktop 文件。
1. 自动发现
标准的 .deb 包会将快捷方式存放在 /usr/share/applications/。你可以通过命令检查:
ls /usr/share/applications/ | grep -i linuxApp
如果能搜到类似 linuxApp.desktop的结果,那恭喜你,在 Ubuntu 桌面按下 Super 键(Windows键)搜索即可找到。
2. 将应用图标发送到桌面
如果你想把这个应用的快捷启动图标放到桌面也是可以的。
cp /usr/share/applications/linuxApp.desktop ~/Desktop/
chmod +x ~/Desktop/linuxApp.desktop
不过不要忘记你现在是用xshell在远程操作,所以继续往下走,看怎么实现"盲开应用"。
2. 获取启动“真名”
如果你要在命令行启动它,必须查出它背后的执行命令要用到的“真名”,执行这条命令:
grep "Exec" /usr/share/applications/linuxApp.desktop
你会得到类似 Exec=linux-myApp 的结果,这才是你要用的“启动真名”,后面的操作都会用到这个名字。
三、 远程启动:如何实现“永不挂断”
既然已经找到了应用真名,可以用Xshell启动吗?答案是可以的。可如果你直接在 Xshell 里输入命令启动,当前这个窗口关掉后,程序就挂了。所以得用远程持久开启的方案。
持久化启动
使用 nohup 命令,让程序脱离 Xshell 会话运行:
nohup linux-myApp --no-sandbox > /dev/null 2>&1 &
我来解释一下这些命令的含义:
nohup:关掉 Xshell,程序不挂断。--no-sandbox:解决远程环境下 Electron 程序的权限报错。> /dev/null 2>&1:丢弃日志,保持终端整洁。&:让程序在后台飞一会儿。
也就是说,执行这条命令后,你可以放心地把xshell关闭了,应用不会关闭。
四、 状态监控:如何知道它是正常的还是“白屏”状态?
到这一步还没有结束!由于是远程状态,在看不到屏幕的情况下,我如何知道应用程序是否活得好好的呢?你得找到应用进程然后再查它的状态,也可以查它的后台日志,linux都为你准备好了。
1. 确认进程状态
ps -ef | grep linux-myApp
这个命令会输出应用的进程ID、应用名称、PPID等信息;注意看进程信息中的 PPID(第二列数字)是 1。这代表该程序的父进程是系统守护进程,而不是你的 Xshell 会话。
2. 确认是否卡死
使用 top 命令监控实时占用:
top -p [进程PID]
这一步会输出多条数据,可以录个屏确认一下当时的状态。可以根据以下状态分类来判断应用的运行状态:
- 正常:CPU 有小幅跳动,内存(RES)稳定。
- 异常(白屏或卡死):CPU 长期 0% 或持续 100%。
- 退出小贴士:在
top界面按q即可退出。
3. 查看后台日志
如果还是不放心,直接看软件的“心跳”记录:
tail -f ~/.config/linux-myApp/logs/main.log
到这里,基本上你的这次远程盲操部署算是圆满成功了,晚上可以给自己加鸡腿了!
💡 总结建议
想成为 Ubuntu 玩家,都得记住这套公式:apt install 安装 -> grep Exec 找应用真名 -> nohup 启动 -> top 找到进程ID后看状态。
希望对你有用!