linux运行完脚本 命令失效,linux – Systemd退出bash脚本,执行导致失败的命令,而不是继续...

我正在尝试获取一个脚本,将我在CoreOS上的系统日志推送到logentries.为了弥补实例在AWS上运行时没有立即连接互联网的事实,我将命令停留在while循环中.

从命令行运行脚本while循环工作正常.但是当systemd运行它时,当netcat超时时它会立即退出,所以它再也没有机会再试一次.

有没有办法让systemd在退出脚本时不那么积极?

systemd输出,永远不会到“睡觉netcat”

Jul 23 22:26:21 core-01 systemd[1]: Starting Push journal logs to logentries.com...

Jul 23 22:26:21 core-01 systemd[1]: Started Push journal logs to logentries.com.

Jul 23 22:26:21 core-01 bash[880]: trying netcat

Jul 23 22:26:31 core-01 bash[880]: Ncat: Connection timed out.

journal2logentries.sh

#!/usr/bin/env bash

token=logentriestoken

while true

do

echo 'trying netcat'

journalctl -o short -f | awk -v token=$token '{ print token,$0; fflush(); }' | ncat --ssl --ssl-verify data.logentries.com 20000

echo 'sleeping netcat'

sleep 30s

done

logentries.service

[Unit]

Description=Push journal logs to logentries.com

After=systemd-journald.service

After=systemd-networkd.service

[Service]

Restart=always

ExecStart=/bin/bash /home/core/journal2logentries.sh

[Install]

WantedBy=multi-user.target

更新:

似乎真正的问题是,当netcat死掉系统时,/ bin / sh进程仍在运行.注意:url故意不正确测试

logentries.service - Push journal logs to logentries.com

Loaded: loaded (/etc/systemd/system/logentries.service; disabled)

Active: active (running) since Mon 2014-07-28 17:12:04 UTC; 1min 48s ago

Main PID: 16305 (sh)

CGroup: /system.slice/logentries.service

├─16305 /bin/sh -c journalctl -o short -f | awk -v token=token_here '{ print token,$0; fflush(); }' | ncat --ssl --ssl-verify -vv ogentries.com 20000

├─16306 journalctl -o short -f

└─16307 awk -v token=80b4b3b6-1315-4b76-ac69-f530c1dec47f { print token,$0; fflush(); }

Jul 28 17:12:04 ip-172-31-19-155.us-west-2.compute.internal systemd[1]: logentries.service holdoff time over,scheduling restart.

Jul 28 17:12:04 ip-172-31-19-155.us-west-2.compute.internal systemd[1]: Stopping Push journal logs to logentries.com...

Jul 28 17:12:04 ip-172-31-19-155.us-west-2.compute.internal systemd[1]: Starting Push journal logs to logentries.com...

Jul 28 17:12:04 ip-172-31-19-155.us-west-2.compute.internal systemd[1]: Started Push journal logs to logentries.com.

Jul 28 17:12:04 ip-172-31-19-155.us-west-2.compute.internal sh[16305]: Ncat: Version 6.40 ( http://nmap.org/ncat )

Jul 28 17:12:04 ip-172-31-19-155.us-west-2.compute.internal sh[16305]: Ncat: Could not resolve hostname "ogentries.com": Name or service not known. QUITTING.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值