您现在的位置是:首页 >技术杂谈 >systemctl教程(systemctl命令)(systemd)(service命令)网站首页技术杂谈
systemctl教程(systemctl命令)(systemd)(service命令)
文章目录
systemctl与systemd
systemctl和systemd是Linux系统中的两个重要组件,它们之间的关系是systemctl是systemd的一个命令行工具,用于管理systemd服务。
systemd是一个系统和服务管理器,它是Linux系统中的一个init系统,负责启动和管理系统中的各种服务和进程。systemd的设计目标是提高系统启动速度、简化系统管理、提高系统安全性和可靠性。
而systemctl是systemd的一个命令行工具,用于管理systemd服务。通过systemctl命令,可以启动、停止、重启、查看、设置和管理系统中的各种服务和进程。systemctl命令可以管理systemd的各种功能,包括系统初始化、进程管理、日志管理、网络管理等。
因此,systemctl和systemd是密切相关的两个组件,systemctl是systemd的一个命令行工具,用于管理systemd服务。
systemctl命令与service命令区别
systemctl和service命令都是用于管理Linux系统中的服务,但它们之间有一些区别。
-
systemctl是systemd的命令行工具,而service是传统的SysVinit系统的命令行工具。systemd是Linux系统中的一个init系统,而SysVinit是早期的init系统。
-
systemctl可以管理systemd服务,包括启动、停止、重启、查看、设置和管理系统中的各种服务和进程。而service命令只能启动、停止、重启和查看服务。
-
systemctl可以管理systemd的各种功能,包括系统初始化、进程管理、日志管理、网络管理等。而service命令只能管理服务的启动和停止。
-
systemctl支持更多的操作,比如设置服务开机自启动、查看服务状态、查看服务依赖关系等。而service命令只能启动和停止服务。
综上所述,systemctl比service命令更加强大和灵活,可以更好地管理Linux系统中的各种服务和进程。但是,在一些旧的Linux系统中,可能还是使用SysVinit系统,此时只能使用service命令来管理服务。
systemctl命令教程(简略)
systemctl = service + chkconfig
systemctl命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起。
任务 | 旧指令 | 新指令 |
---|---|---|
使某服务自启 | chkconfig --level 3 httpdon | systemctl enable httpd.service |
使某服务不自动启动 | chkconfig --level 3 httpdoff | systemctl disable httpd.service |
检查服务状态 | service httpd status | systemctl status httpd.service 或者systemctl is-active httpd.service |
显示所有已启动服务 | chkconfig --list | systemctl list-units --type=service |
启动某服务 | service httpd start | systemctl start httpd.service |
停止某服务 | service httpd stop | systemctl stop httpd.service |
重启某服务 | service httpd restart | systemctl restart httpd.service |
示例
1.启动nfs服务
systemctl start nfs-server.service
2.设置开机自启动
systemctl enable nfs-server.service
3.停止开机自启动
systemctl disable nfs-server.service
4.查看服务当前状态
systemctl status nfs-server.service
5.重新启动某服务
systemctl restart nfs-server.service
6.查看所有已启动的服务
systemctl list-units --type=service
示例:如何创建自定义服务
以下示例如何用systemctl命令为程序myprocess创建自定义服务:
- 创建一个service文件,比如
myprocess.service
,并将其放在/etc/systemd/system/
目录下。
sudo vi /etc/systemd/system/myprocess.service
- 在
myprocess.service
文件中添加以下内容:
[Unit]
Description=My Process
After=network.target
[Service]
Type=simple
Restart=always
RestartSec=1
User=root
ExecStart=/path/to/myprocess
[Install]
WantedBy=multi-user.target
其中,Description
是服务的描述,After
指定服务启动的顺序,Type
指定进程类型,Restart
和RestartSec
指定进程死亡后自动重启的策略,User
指定进程运行的用户,ExecStart
指定进程的启动命令(如果带参数可在其后添加参数),WantedBy
指定服务启动的目标。
- 启动服务并设置开机自启动:
sudo systemctl start myprocess
sudo systemctl enable myprocess
现在,进程已经被systemd管理了,如果进程死掉了,systemd会自动拉起它。可以使用以下命令来管理服务:
sudo systemctl status myprocess # 查看服务状态
sudo systemctl stop myprocess # 停止服务
sudo systemctl restart myprocess # 重启服务
sudo systemctl disable myprocess # 禁止服务开机自启动
Todo:上面.service文件各个参数的详细解释。
如何移除服务的解释。