systemd中有些配置文件中"> /dev/null 2>&1 || :"的作用

在配置vnc开机启动的的时候看到官方给的配置文件:

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking

# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l vismarty -c "/usr/bin/vncserver %i"
PIDFile=/home/vismarty/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

中,有> /dev/null 2>&1 || : 这样一段话,以前一直不知道为什么要这么写,直到今天自己配了一个ExecStartPre

ExecStartPre=/bin/sh -c '/usr/bin/rm /tmp/.X11-unix/X*'

才发现,原来ExecStartPre执行失败的时候,整个service就会起不来,这样的话,就需要忽略这段代码中的错误部分,所以加入重定向输入> /dev/null 2>&1同时把错误输入流也重定向,然后加入|| :,表示这段代码的执行结果,如果||之前的失败了,要输入出:这个命令的结果,而冒号命令在shell中就是pass的意思,所以

ExecStartPre=/bin/sh -c '/usr/bin/rm /tmp/.X11-unix/X* > /dev/null 2>&1 || :'

永远都是成功的,这样就能保证ExecStartPre即使执行失败,也能继续service的启动任务。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值