背景
过程:我们将一个go服务启动以后,将源文件删除,然后再从进程中恢复此文件。
查找正在运行的go服务进程:gotest
ps -ef | grep gotest
删除源文件前
删除源文件后
从进程中恢复源文件
1. 从当前目录将可执行文件恢复到指定目录:cp exe /home/
2. 打开目录:cd /home/
3. 重命名可执行文件:mv exe gotest2
4. 测试文件是否可用:./gotest2 &
5. 注意:如果可执行文件是一个提供端口服务的进程,请先kill之前的进程,以免端口冲突;
结论
- 此文有个隐藏的点:将go源文件删除以后,并不影响正在运行的go程序;因为已经加载到内存中;
- 一旦系统重启以后,服务和源程序就都不存在了;
- 此文的应用场景,例如外包交付测试;大家自行脑补吧;
以上。