首页 > 编程知识 正文

systemctl命令未找到,systemctl是什么意思

时间:2023-05-04 12:48:26 阅读:44561 作者:241

转载: https://blog.csdn.net/QQ _ 29663071/article/details/80814081

systemctl是RHEL 7 的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。可以使用它永久性或只在当前会话中启用/禁用服务。

1.服务权限

系统有系统和用户之分的系统(/user/lib/systemd/system/)、用户)/etc/lib/systemd/user/)。

典型的系统管理员手动创建的设备文件最好存储在/etc/systemd/system/目录下。

2.创建服务文件

[单元]

escription=nginx-highperformanceweb服务器

文档=http://nginx.org/en/docs /

after=network.target remote-fs.target NSS-lookup.target

服务

类型=forking

PIDFile=/run/nginx.pid

ExecStartPre=/usr/s雅致水壶/nginx-t-c/etc/nginx/nginx.conf

ExecStart=/usr/s雅致水壶/nginx -c /etc/nginx/nginx.conf

ExecReload=/雅致的水壶/kill -s HUP $MAINPID

ExecStop=/雅致的水壶/kill -s QUIT $MAINPID

私密tmp=true

[Install]

WantedBy=multi-user.target

[Unit]

Description :服务简要说明

文档:服务文档

Before,After:定义启动顺序。 Before=xxx.service,即本服务将在xxx.service启动之前启动。 After=xxx.service,即本服务在xxx.service之后启动。

Requires :此设备将启动,所需的设备也将启动; 所需的单元已停止,该单元也已停止。

Wants :推荐。 该单元启动,所需单元也启动; 所需单元将被停止,不影响本单元。

[Service]

Type=simple (默认) systemd认为服务将立即启动。 服务进程不会冻结。 除非服务是套接字启动类型,否则如果服务启动其他服务,请不要使用此类型启动。

Type=forking:systemd认为在服务进程已冻结且父进程终止后,服务启动成功。 对于普通守护程序(守护程序),只要该启动方法不判断为不能满足需要,就以该类型启动即可。 对于此启动类型,还必须指定PIDFile=,以便systemd可以跟踪服务的主进程。

Type=oneshot :此选项适用于只执行一项任务并立即关闭的服务。 可能需要同时设置RemainAfterExit=yes,以便在服务进程结束后,系统仍认为服务处于活动状态。

type=notify :与type=simple相同,但约定服务在准备好后向systemd发送信号。 该通知的实现由libsystemd-daemon.so提供。

Type=DBus :以这种方式启动时,当指定的BusName显示在dbus系统总线上时,systemd认为服务已准备好。

Type=idle: systemd等待所有任务(Jobs )的处理完成,然后开始运行idle类型的设备。 其他行为与Type=simple类似。

PIDFile:pid文件路径

ExecStart :指定用于启动单元格的命令或脚本,ExecStartPre和ExecStartPost部分指定用户在ExecStart之前或之后自定义运行的脚本。 在Type=oneshot中,可以指定要按顺序执行的多个用户定义命令。

ExecReload :指定设备停止时要执行的命令或脚本。

ExecStop :指定在设备停止时执行的命令或脚本。

PrivateTmp:True表示为服务分配独立的临时空间

Restart :如果允许此选项,则该进程将在服务重新启动时终止,并使用systemctl命令执行清除并重新启动操作。

RemainAfterExit :如果将此选项设置为true,则认为服务处于活动状态。 因此,即使的进程结束,默认值也是false。 仅当Type=oneshot时才需要设置此选项。

rong>[Install]

Alias:为单元提供一个空间分离的附加名字。

RequiredBy:单元被允许运行需要的一系列依赖单元,RequiredBy列表从Require获得依赖信息。

WantBy:单元被允许运行需要的弱依赖性单元,Wantby从Want列表获得依赖信息。

Also:指出和单元一起安装或者被协助的单元。

DefaultInstance:实例单元的限制,这个选项指定如果单元被允许运行默认的实例。

3.重载服务

systemctl enable nginx.service(设置开机自启)

就会在/etc/systemd/system/multi-user.target.wants/目录下新建一个/usr/lib/systemd/system/nginx.service 文件的链接。

4.操作服务

?

 

#启动服务

$ sudo systemctl start nginx.service

  

#查看日志

$ sudo journalctl -f -u nginx.service

— Logs begin at 四 2015-06-25 17:32:20 CST. —

6月 25 10:28:24 Leco.lan systemd[1]: Starting nginx – high performance web server…

6月 25 10:28:24 Leco.lan nginx[7976]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

6月 25 10:28:24 Leco.lan nginx[7976]: nginx: configuration file /etc/nginx/nginx.conf test is successful

6月 25 10:28:24 Leco.lan systemd[1]: Started nginx – high performance web server.

  

#重启

$ sudo systemctl restart nginx.service

  

#重载

$ sudo systemctl reload nginx.service

  

#停止

$ sudo systemctl stop nginx.service

 

PS:使用命令 systemctl is-enabled postfix.service 得到的值可以是enable、disable或static,这里的 static 它是指对应的 Unit 文件中没有定义[Install]区域,因此无法配置为开机启动服务。

 

刚刚配置的服务需要让systemctl能识别,就必须刷新配置

?

 

$ systemctl daemon-reload

如果没有权限可以使用sudo

?

 

$ sudo systemctl daemon-reload

 

 

 

启动一个服务:systemctl start nginx.service
关闭一个服务:systemctl stop postfix.service
重启一个服务:systemctl restart nginx.service
显示一个服务的状态:systemctl status postfix.service
在开机时启用一个服务:systemctl enable nginx.service
在开机时禁用一个服务:systemctl disable nginx.service
查看服务是否开机启动:systemctl is-enabled nginx.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled

查看启动失败的服务列表:systemctl --failed

 

例:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。