侧边栏壁纸
  • 累计撰写 71 篇文章
  • 累计创建 15 个标签
  • 累计收到 3 条评论

目 录CONTENT

文章目录

关于systemctl 服务命令

寒江孤影
2024-03-22 / 0 评论 / 0 点赞 / 5 阅读 / 2724 字
温馨提示:
本文最后更新于 2024-03-22,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

关于systemctl 服务命令

1、在/etc/systemd/system目录下,新建demo.service文件;

2、在demo.service文件内输入

[Unit]

Description=demo #当前配置文件的描述信息

After=network.target nginx.service #表示当前服务是在那个服务后面启动,一般定义为网络服务启动后启动

[Unit]     				
Description=demo	                  #当前配置文件的描述信息
After=network.target nginx.service    #表示当前服务是在那个服务后面启动,一般定义为网络服务启动后启动
 
[Service]
WorkingDirectory=/home/test                #工作目录				
Type=forking			                   #定义启动类型 
ExecStart=/home/test/demo-start.sh 	       #定义启动进程时执行的命令。
ExecReload=/home/test/demo-restart.sh      #重启服务时执行的命令
ExecStop=/home/test/demo-stop.sh		   #定义关闭进程时执行的命令。
PrivateTmp=true							   #是否分配独立空间
Restart=always
RestartSec=5
StartLimitInterval=0
StartLimitBurst=5
 
[Install]
WantedBy=multi-user.target    #表示多用户命令行状态

Type字段:定义启动类型。它可以设置的值如下:

- simple(默认值):ExecStart字段启动的进程为主进程

- forking:后台执行,ExecStart字段将以fork()方式启动,此时父进程将会退出,子进程将成 为主进程

- oneshot:类似于simple,但只执行一次,Systemd 会等它执行完,才启动其他服务

- dbus:类似于simple,但会等待 D-Bus 信号后启动

- notify:类似于simple,启动结束后会发出通知信号,然后 Systemd 再启动其他服务

- idle:类似于simple,但是要等到其他任务都执行完,才会启动该服务。一种使用场合是为 让该服务的输出,不与其他服务的输出相混

3、chmod 777 demo.service #添加可执行权限

4、systemctl enable demo.service #设置开机自启

5、systemctl start demo.service #启动服务

6、systemctl stop demo.service #停止服务

7、systemctl restart demo.service #重启服务

8、systemctl disable demo.service #取消开机自启

9、systemctl status demo.service #服务详细信息

10、systemctl is-active demo.service #仅显示是否Active

11、systemctl list-units --type=service #显示全部已经启动的服务

注意:在更新完demo.service后,要重启服务的配置文件:systemctl daemon-reload

遇到问题:

1、在配置nsq服务的时候,想要在后台运行,且设置nsq中的nsqlookupd、nsqd和nsqadmin三个服务的输出到指定位置,该怎么做?

解答:

需要把service文件中的ExecStart字段的配置项稍作修改,例如:

ExecStart=/bin/bash -c '/home/nsq/nsqlookupd > /home/log/nsqlookupd.log 2>&1 &'

0

评论区