当想要在服务器上部署一个常驻程序时,不想让程序随着Terminal的退出而中止,你可以使用docker nohup supervisor 这些工具来实现。但是处于想学习Linux中Systemd的目的,我使用Systemd来实现把一个Golang程序作为一个系统服务
使用go语言实现一个守护进程
首先我们要知道
①什么是守护进程;?
②为什么要使用守护进程?
答案:
①所谓守护进程,就是不依赖任何终端的进程,也就是说如果你在当前这个终端启动了一个守护进程,然后把这个终端关了。如果是一个普通进程,而不是守护进程,那么它也会随着终端的关闭而终止。但是守护进程就比较牛逼了,当你再次打开一个新的终端的时候,只要该守护进程的任务没有完成,那么你仍然可以看到它。
②他有什么用呢?比如我正在做的服务端,你想象一下,你买了一台华为云服务器,然后远程连接以后,启动了你的服务进程,如果你的进程不是守护进程,那么在你关闭你终端的时候,你的服务进程也终止了,这可不是你想要的结果啊。所以说我们的服务器,特别是云服务器一定是以守护进程的方式在运行。
使用时间机器还原系统的注意事项
如果是使用brew安装软件导致系统各种问题,使用Mac自带的迁移助理,虽然可以还原系统,但是之前brew安装的残留文件并不会删除,唯一的方法只能是command+R打开实用工具,把电脑的系统分区和数据分区都删除,然后重装系统,重装完毕后,再还原时间机器里的某个备份。如果删除分区后关闭电脑,再次command+R打开实用工具,此时的实用工具是一个非常老的版本,无法使用。此时需要在系统启动的时候,同时按住Option+command+R打开实用工具。