Linux自定义service,systemd将java程序做系统服务

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:服务启动的条件,表示服务启动前需要检查的内核命令行是否包含指定的参数。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值