您现在的位置是:首页 >技术杂谈 >systemctl教程(systemctl命令)(systemd)(service命令)网站首页技术杂谈

systemctl教程(systemctl命令)(systemd)(service命令)

Dontla 2024-06-20 18:01:02
简介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系统中的服务,但它们之间有一些区别。

  1. systemctl是systemd的命令行工具,而service是传统的SysVinit系统的命令行工具。systemd是Linux系统中的一个init系统,而SysVinit是早期的init系统。

  2. systemctl可以管理systemd服务,包括启动、停止、重启、查看、设置和管理系统中的各种服务和进程。而service命令只能启动、停止、重启和查看服务。

  3. systemctl可以管理systemd的各种功能,包括系统初始化、进程管理、日志管理、网络管理等。而service命令只能管理服务的启动和停止。

  4. systemctl支持更多的操作,比如设置服务开机自启动、查看服务状态、查看服务依赖关系等。而service命令只能启动和停止服务。

综上所述,systemctl比service命令更加强大和灵活,可以更好地管理Linux系统中的各种服务和进程。但是,在一些旧的Linux系统中,可能还是使用SysVinit系统,此时只能使用service命令来管理服务。

systemctl命令教程(简略)

参考文章:systemctl命令详解

systemctl = service + chkconfig

systemctl命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起。

任务旧指令新指令
使某服务自启chkconfig --level 3 httpdonsystemctl enable httpd.service
使某服务不自动启动chkconfig --level 3 httpdoffsystemctl disable httpd.service
检查服务状态service httpd statussystemctl status httpd.service 或者systemctl is-active httpd.service
显示所有已启动服务chkconfig --listsystemctl list-units --type=service
启动某服务service httpd startsystemctl start httpd.service
停止某服务service httpd stopsystemctl stop httpd.service
重启某服务service httpd restartsystemctl 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创建自定义服务:

  1. 创建一个service文件,比如myprocess.service,并将其放在/etc/systemd/system/目录下。
sudo vi /etc/systemd/system/myprocess.service
  1. 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指定进程类型,RestartRestartSec指定进程死亡后自动重启的策略,User指定进程运行的用户,ExecStart指定进程的启动命令(如果带参数可在其后添加参数),WantedBy指定服务启动的目标。

  1. 启动服务并设置开机自启动:
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文件各个参数的详细解释。

如何移除服务的解释。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。