场景:测试环境服务器上正在跑一个编译好的golang服务,但是目前正在调试阶段,那么需要反复的编译新的代码,命令操作太繁琐了。
操作:1.先git pull新代码
2.再ps查看当前进程,
3.再找到进程pid或者进程名称
4.再kill掉此进程
5.再nohup后台挂起此进程,写日志,完成一系列命令操作
问题:这一系列的操作非常费手,不想去重复的操作命令,为了省事,则有了下面的shell脚本。
改进:
#!/bin/sh
git pull
ps aux | grep test1 | grep -v "grep" | awk '{print $2}' | xargs kill
go build -o test1 . && echo "ok" && nohup ./test1 >> run.log &
解释:比如这里我们的进程名称叫做test1,那么就对test1这个进程完成上面一系列操作。将此脚本保存为一个shell脚本文件,例如:x.sh,那么每次我们提交了代码,只需要在项目目录下执行命令:./x.sh就可以完成以上操作,省时省力!