系统服务存放目录:开机不登录就运行的服务

/usr/lib/systemd/system

用户目录存放目录:

/usr/lib/systemd/user


service 文件的书写方法


[Unit]

        主要是对这个服务的说明,内容包括Description和After,Description 用于描述服务,After用于描述服务类别。

[Unit]
Description=java tomcat project
After=tomcat.service

[Service]

        是服务的关键,是服务的一些具体运行参数的设置,启动、重启、停止命令全部要求使用绝对路径。

[Service]
Type=forking       #是后台运行的形式
User=users         #是设置服务运行的用户
Group=users        #是设置服务运行的用户组
PIDFile=/usr/local/tomcat/tomcat.pid             #为存放PID的文件路径
ExecStart=/usr/local/tomcat/bin/startup.sh       #为服务的启动命令
ExecReload=        #为重启命令
ExecStop=/usr/local/tomcat/bin/shutdown.sh       #为停止命令
PrivateTmp=true    #表示给服务分配独立的临时空间

[Install]

        服务安装的相关设置,可设置为多用户的

[Install]
WantedBy=multi-user.target

添加可执行权限:

chmod 754 /usr/lib/systemd/system/tomcat.service

日志位置:如果启动失败看此日志

tail -f /var/log/messages


systemctl 常用管理命令


设置为开机自启动:

systemctl enable tomcat.service

开机启动并立即启动:

systemctl enable --now tomcat.service

启动某服务

systemctl start tomcat.service

停止某服务

systemctl stop tomcat.service

重启某服务

systemctl restart tomcat.service

使某服务自动启动

systemctl enable tomcat.service
systemctl is-enabled tomcat.service

使某服务不自动启动

systemctl disable tomcat.service

检查服务状态

systemctl status tomcat.service (服务详细信息)
systemctl is-active tomcat.service(仅显示是否Active)

显示所有已启动的服务

systemctl list-units --type=service

禁止启动服务:

systemctl mask tomcat.service
systemctl unmask tomcat.service

查看服务依赖关系:

systemctl list-dependencies docker.service


target


查看所有target:

]# systemctl list-unit-files --type target --all
UNIT FILE                 STATE   
basic.target              static  
bluetooth.target          static  
cryptsetup-pre.target     static  
cryptsetup.target         static  
ctrl-alt-del.target       disabled
default.target            enabled
...

查看target的相互依赖:

]# systemctl list-dependencies graphical.target
graphical.target
● ├─display-manager.service
● ├─network.service
● ├─systemd-update-utmp-runlevel.service
● ├─vmware-tools.service
● └─multi-user.target
●   ├─auditd.service
●   ├─chronyd.service
●   ├─crond.service
●   ├─dbus.service
●   ├─docker.service
...

切换模式:

]# runlevel #原命令
N 3
]# systemctl isolate rescue.target

模式列表:

lrwxrwxrwx   1 root root    15 6月   2 2020 runlevel0.target -> poweroff.target
lrwxrwxrwx   1 root root    13 6月   2 2020 runlevel1.target -> rescue.target
drwxr-xr-x.  2 root root  4096 6月   2 2020 runlevel1.target.wants
lrwxrwxrwx   1 root root    17 6月   2 2020 runlevel2.target -> multi-user.target
drwxr-xr-x.  2 root root  4096 6月   2 2020 runlevel2.target.wants
lrwxrwxrwx   1 root root    17 6月   2 2020 runlevel3.target -> multi-user.target
drwxr-xr-x.  2 root root  4096 6月   2 2020 runlevel3.target.wants
lrwxrwxrwx   1 root root    17 6月   2 2020 runlevel4.target -> multi-user.target
drwxr-xr-x.  2 root root  4096 6月   2 2020 runlevel4.target.wants
lrwxrwxrwx   1 root root    16 6月   2 2020 runlevel5.target -> graphical.target
drwxr-xr-x.  2 root root  4096 6月   2 2020 runlevel5.target.wants
lrwxrwxrwx   1 root root    13 6月   2 2020 runlevel6.target -> reboot.target

查看开机默认模式:

systemctl get-default

设置开机默认模式:

systemctl set-default TARGET.target