1.先进入系统服务列表的文件夹
cd /etc/systemd/system
2.新建文件 eg. test.service
[Unit]部分定义了服务的描述信息,[Service]部分定义了服务的具体实现,[Install]部分定义了服务的安装信息
[Unit]
Description=test
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
ExecStart=/usr/bin/sh -c "exec /usr/local/java1.8/jdk1.8.0_341/bin/java -jar -Xms128m -Xmx512m /data/run/test/test.jar >> /data/run/test/testLog.txt 2>&1"
[Install]
WantedBy=multi-user.target
相关执行命令
systemctl start test.service //启动service脚本
systemctl restart test.service //重启service脚本
systemctl stop test.service //停止service脚本
systemctl status test.service //查看service状态
journalctl -u test.service //查看service日志,journalctl用于查看系统日志,-u指定服务名称。
systemctl daemon-reload //重新加载systemd守护程序,以便它可以读取任何新的或更改的服务文件。
ps auxw --sort=-rss //查看内存占用情况,列出所有进程,并按内存使用量从高到低排序。
df -hl //查看磁盘占用情况
3.每个标签下的字段解释
[Unit]标签下的字段:
Description:服务的描述,用于描述服务的名称或用途。
After:服务启动的顺序,表示服务将在哪些其他服务之后启动。
StartLimitIntervalSec:服务启动失败后的重试间隔时间,单位为秒。
[Service]标签下的字段:
Type:服务的类型。
Restart:服务失败后的重启策略。
RestartSec:服务重启的间隔时间,单位为秒。
ExecStart:服务的启动命令,可以是一个命令或一个脚本,用于启动服务。
ExecStop:服务的停止命令,用于停止服务。
WorkingDirectory:服务的工作目录,用于指定服务的工作目录。
User:服务运行的用户,用于指定服务运行的用户。
Group:服务运行的用户组,用于指定服务运行的用户组。
StandardOutput:服务的标准输出,用于指定服务的标准输出文件。
StandardError:服务的标准错误输出,用于指定服务的标准错误输出文件。
PrivateTmp:服务是否使用私有的临时文件系统。
TimeoutStartSec:服务启动的超时时间,单位为秒。
TimeoutStopSec:服务停止的超时时间,单位为秒。
PIDFile:服务的PID文件,用于指定服务的PID文件路径。
Environment:服务的环境变量,用于指定服务的环境变量。
ExecReload:服务的重载命令,用于重新加载服务的配置文件。
KillMode:服务的杀死模式,有control-group、process、mixed等模式。
[Install]标签下的字段:
WantedBy:服务所属的target,表示服务将在哪些target下启动。
RequiredBy:服务所需的其他服务,表示服务需要哪些其他服务才能启动。
Also:服务的别名,用于指定服务的别名。
DefaultInstance:服务的默认实例,用于指定服务的默认实例。
Alias:服务的别名,用于指定服务的别名。
Documentation:服务的文档,用于指定服务的文档路径。
ConditionPathExists:服务启动的条件,表示服务启动前需要检查的文件或目录是否存在。
ConditionPathIsExecutable:服务启动的条件,表示服务启动前需要检查的文件是否可执行。
ConditionPathIsSymbolicLink:服务启动的条件,表示服务启动前需要检查的文件是否为符号链接。
ConditionPathIsMountPoint:服务启动的条件,表示服务启动前需要检查的目录是否为挂载点。
ConditionPathIsReadWrite:服务启动的条件,表示服务启动前需要检查的文件是否可读写。
ConditionFileNotEmpty:服务启动的条件,表示服务启动前需要检查的文件是否为空。
ConditionFileIsExecutable:服务启动的条件,表示服务启动前需要检查的文件是否可执行。
ConditionFileIsSymbolicLink:服务启动的条件,表示服务启动前需要检查的文件是否为符号链接。
ConditionFileIsReadWrite:服务启动的条件,表示服务启动前需要检查的文件是否可读写。
ConditionKernelCommandLine:服务启动的条件,表示服务启动前需要检查的内核命令行是否包含指定的参数。