Linux Beego 部署与进程管理笔记
Linux 部署 Beego 应用
本轮只做理论正文与源码静态复核;下列命令、示例和测试均未执行。已有输出按代码推演或历史记录理解,不作为本轮运行证据。
原工作笔记记录 Beego 应用打包后独立运行的流程。
打包与部署
sh
bee pack -be GOOS=linux
# Windows 目标使用:bee pack -be GOOS=windows将产出的压缩包解压到部署目录,确认程序具有执行权限。
sh
chmod +x ./user_server
nohup ./user_server &查找和停止进程
用 netstat -ntlp 查询监听端口,读取输出中的 PID/Program name 并确认程序身份。kill 接受 PID,不能填写端口号。优先发送正常终止信号;原稿直接使用 kill -9 会跳过程序清理。
sh
kill <PID>Windows 侧原稿只提到通过启动项 BAT 或服务启动,尚未提供具体实现。
历史部署笔记的适用范围
这份资料不包含所用 bee/Beego 版本、应用源码或配置,因此打包片段不作为完整部署工程。user_server 仅是原应用文件名,不能由 pack 命令推断每个工程都产生同名文件。nohup 只改变挂断信号/标准流处理,不提供开机启动、健康检查、日志轮转或失败重启。当前完整 Go HTTP 工程在API课程,本页只保留历史进程操作的解释。
书面练习:端口号能否直接传给 kill?提示:对照 PID 与监听端口两列。
参考答案
不能。核对进程身份后使用 PID;信号能否触发应用清理还取决于程序是否实现该信号的处理。不能用 kill -9 证明优雅关闭。
Shell 按名称查找与终止进程
杀死进程
下方 kill.sh 是按文本模式批量匹配并发送 SIGKILL 的历史反例,可能误中无关进程并跳过清理,不作为当前流程。实际停止以核对进程身份后的正常信号为准;原稿仅供对照,未执行。
kill.sh
#!/bin/sh
#根据进程名杀死进程
if [ $# -lt 1 ]
then
echo "缺少参数:procedure_name"
exit 1
fi
PROCESS=`ps -ef|grep $1|grep -v grep|grep -v PPID|awk '{ print $2}'`
for i in $PROCESS
do
echo "Kill the $1 process [ $i ]"
kill -9 $i
done继续阅读
- 命令与系统观察
- 知识专题
- 命令与系统观察