Linux命令之systemctl

Linux systemctl 命令是 systemd 系统和服务管理器的主要命令之一,它可以启动、停止、重启、重新加载和查询系统服务状态等操作。

1.语法

systemctl [OPTIONS...] {COMMAND} ...

-----------------------------------------------------------------------------------------------

OPTIONS: 可选参数,用于指定 systemctl 的行为。
COMMAND: 必需参数,用于执行特定的 systemd 命令,例如启动、停止或重新启动服务。

-----------------------------------------------------------------------------------------------

常用OPTIONS:
-a, --all: 显示所有已加载的单位,而不仅仅是当前活动的单位。
-t, --type: 根据指定的单元类型筛选单元列表。支持的单元类型包括 service、socket、mount 等。

常用COMMAND:
status <service>:显示指定服务的运行状态、日志信息和依赖关系。
is-active <service>:检查指定服务是否处于激活状态(运行中)。
is-enabled <service>:检查指定服务是否已启用(将在系统开机时自动启动)。
is-failed <service>:检查指定服务是否处于失败状态。

start <service>:启动指定服务。
stop <service>:停止指定服务。
restart <service>:重新启动指定服务。
reload <service>:重新加载指定服务的配置文件。
enable <service>:启用指定服务,使其在系统开机时自动启动。
disable <service>:禁用指定服务,使其不会在系统开机时启动。

list-units:列出所有已加载单元并显示其当前状态。
list-unit-files:列出所有可用单元。
show <unit>:显示指定服务单元的详细信息。

命令示例请看这里:https://blog.csdn.net/carefree2005/article/details/125886811

2.Unit文件

Systemd是现代Linux系统中的一个系统和服务管理器,它使用Unit文件来定义和控制系统服务、设备和其他资源。其中Unit文件存放在 /etc/systemd/system/ 中。

Unit的文件示例如下,大家可以自行百度,制作自己想要的系统服务

[Unit]
Description=NTP client/server
Documentation=man:chronyd(8) man:chrony.conf(5)
After=ntpdate.service sntp.service ntpd.service
Conflicts=ntpd.service systemd-timesyncd.service
ConditionCapability=CAP_SYS_TIME

[Service]
Type=forking
PIDFile=/var/run/chronyd.pid
EnvironmentFile=-/etc/sysconfig/chronyd
ExecStart=/usr/sbin/chronyd $OPTIONS
ExecStartPost=/usr/libexec/chrony-helper update-daemon
PrivateTmp=yes
ProtectHome=yes
ProtectSystem=full

[Install]
WantedBy=multi-user.target

案例:
使用一个无shell权限的用户运行tomcat项目

  1. 先关闭tomcat项目
/usr/local/tomcat/bin/shutdown.sh
  1. 创建无shell权限的用户,并将tomcat项目权限分给该用户
useradd -s /sbin/nologin tomcat
chown tomcat:tomcat /usr/local/tomcat -R
  1. 新建服务文件
[Unit]
Description=tomcat
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
RestartSec=3
PrivateTmp=true
User=tomcat
Group=tomcat

[Install]
WantedBy=multi-user.target
  1. 重新加载服务,并启动
systemctl daemon-reload
systemctl start tomcat
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值