如何在Linux中启动、停止和重启服务?

systemctl 在 Linux 上非常容易使用。
它可以启动、停止、重启服务、自动启动系统。

我们先看看状态。
不要盲目操作,首先检查服务是否正在运行。
命令如下:sudo systemctl status 服务名称。
例如,让我们看一下 SSH。
输入命令。
如果屏幕显示Active:active(running),则表示正在运行。
如果显示inactive(off),则表示没有运行。
理解?
启动一个服务,只是暂时启动,不启动。
键入命令:sudo systemctl 启动服务名称。
例如,对于 Apache,在 Ubuntu 上为 sudo systemctl start apache2
要停止服务,请键入:sudo systemctl stop service name。
例如Nginx,停止它的命令是sudo systemctl stop nginx。

要重启服务,通常需要在更改配置文件后重新启动它。
命令为:sudo systemctl restart 服务名称。
例如,对于 MySQL,键入 sudo systemctl restart mysql。

我们来谈谈开机自启动。
如果您希望它在启动时自动运行,命令是:sudo systemctl启用服务名称。
比如Docker,sudo systemctl enable docker,如果你这样做了,下次打开电脑时它就会自动启动。

如果您想取消开机时自动启动,请键入:sudo systemctl禁用服务名称。
例如Postfix,sudo systemctl禁用postfix,下次开机时将不再自动启动。

有几点需要注意。
首先,不同的Linux发行版中的服务名称可能不同。
例如,CentOS/RHEL 上的 Apache、httpd 以及 Ubuntu/Debian 上的 apache2 至于MySQL,可以称为mysql、mariadb或mysqld。
nginx 通常是 nginx,但不完全是。
如果您不确定,可以输入 systemctl list-unit-files --type=service 来列出所有服务。

其次,所有这些命令都必须加上sudo,普通用户没有权限。

第三,不要盲目停止主服务。
例如network.target,如果你停止系统,你可能会很愚蠢。
操作前想清楚。

例如管理nginx服务。
先启动它,sudo systemctl start nginx,然后检查状态,sudo systemctl nginx status。
更改配置文件后,重启,sudo systemctl restart nginx。
如果您希望它在启动时自动启动,请 sudo systemctl enable nginx。
暂时停止,sudo systemctl stop nginx。

还有其他几个也常用的命令。
例如,如果更改服务单元文件,则需要重新加载 systemd 配置并键入 sudo systemctl daemon-reload。
如果您想知道服务是否仍然存在,请键入 sudo systemctl is-active service name。

较旧的Linux版本,例如CentOS6 ,也可以使用service命令。
操作方法为sudo服务名启动/停止/重启。
不过现在我基本都改用systemctl了。

就是这样,你喜欢用就用吧。
请记住,服务名称需要替换为真实的名称,并且需要注意分布差异。

如何关闭docker

关闭Docker,让我们处理结果。

场景1 :先停止所有正在运行的容器,然后关闭Docker 这需要使用命令行。

禁止单个容器?只需输入 docker stop 并将 替换为要停止的容器的编号。
例如 docker stop 1 2 3 4 5
您需要多少个站点?加一个空格就可以了,比如docker stop 1 2 3 4 5 6 7 8 9 0。

最烦人的是停止一切?这需要一个组合:首先输入 docker ps -a -q,这个命令会列出你所有容器的所有编号,然后快速跟上 docker stop,后面跟着 $() 括号,插入刚才列出的所有编号。
像这样: 在一起 docker stop $(docker ps -a -q)
说实话,我第一次使用的时候并没有得到它。
我花了很长时间才弄清楚。

场景2 :清理垃圾(小心) 停止容器后,有时需要删除一些无用的东西,比如那些不再使用的容器、网络和镜像,否则硬盘迟早会爆炸。
这时候就应该使用docker system prune命令了。

但是!这个命令很残忍,它会删除所有不使用的东西!包括您可能想要保留作为备份的内容。
因此,使用前应确认。
所有重要数据都备份了吗?请勿在没有备份的情况下键入命令。

场景三:使用系统服务管理器关闭Docker 对于 Linux 系统,您必须具有管理员权限并键入 sudo systemctl stop docker。
只需杀死 Docker 守护进程即可。

Windows系统比较麻烦,必须使用PowerShell并输入Stop-Service docker。
或者更粗暴的方式,进入服务管理器手动找到Docker服务,点击停止。

场景四:使用Docker Desktop(图形界面) 如果安装了Docker Desktop,那就简单多了。
单击任务栏上的 Docker 图标,然后选择“退出 Docker Desktop”(Windows/macOS) 或“关闭 Docker”(某些版本称此)。
这将自动停止所有容器,然后关闭服务。

场景五:使用第三方软件关闭 Portainer 和 Kitematic 等可视化工具也可以解决这个问题。
先安装好,连接本地Docker环境,然后多次点击界面即可批量停止容器或者直接关闭服务。
注释 关闭之前最好备份重要的容器数据、镜像等,使用docker系统修剪时要格外小心,确认删除不必要的镜像。
服务中断后,Docker上运行的所有应用程序都将关闭,直到服务恢复后才能使用。