systemctl启动服务时,配置日志输出控制

转载地址:https://blog.csdn.net/jeccisnd/article/details/103166554/

 

linux 的systemctl是一个系统服务管理工具,当我们想使用这个工具来管理服务,也是比较简单的。请看例子:

我想把一个java程序ibot写到系统服务里:

#[Unit]部分主要是对这个服务的说明,内容包括Description和After,Description
#用于描述服务,After用于描述服务类别
[Unit]
Description=iBot Service
After=syslog.target
 
#[Service]部分是服务的关键,是服务的一些具体运行参数的设置,这里Type=forking
#是后台运行的形式,PIDFile为存放PID的文件路径,ExecStart为服务的具体运行命令,
#ExecReload为重启命令,ExecStop为停止命令,PrivateTmp=True表示给服务分配独
#立的临时空间,注意:[Service]部分的启动、重启、停止命令全部要求使用绝对路径,使
#用相对路径则会报错!
#StandardOutput=null 是将程序业务日志输出到空,也可以指定文件,或者交给journal处理
 
[service]
Type=forking
ExecStart=/usr/local/java/bin/java -jar /usr/local/services/iBot-1.0.0-version.jar 
SuccessExitStatus=143
ExecStop=/usr/bin/kill -15  $MAINPID
StandardOutput=null
#StandardOutput=/tmp/services/logs/iBot/iBot-run.log
 
#[Install]部分是服务安装的相关设置,可设置为多用户的
[Install]
WantedBy=multi-user.target

其中,StandardOutput=null是我遇到过的问题,程序的日志交由journal处理后,journal把日志写到了系统日志。日志产生了混乱。所以可以通过StandardOutput=null来控制,把日志输出关闭。或者写对别的文件里去。常见的参数有:

StandardInput=null
StandardOutput=inherit
StandardError=inherit

我们也可以通过systemctl show iBot 来查看相关服务的信息

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值