将 nohup 输出通过管道传输到具有不同优先级的记录器

将 nohup 输出通过管道传输到具有不同优先级的记录器

我有一个第三方 Python 脚本可以使用 nohup 在后台运行。我不想将输出通过管道传输到文件,而是希望使用以下命令将输出附加到系统日志中:记录器。除此之外,我需要使用优先级“user.error”和常规输出“user.notice”来记录错误输出。这样我确信至少错误会在日志中弹出。

运行一个简单的命令而不使用 nohup 似乎可以工作:

ls /tmp 1> >(logger --priority user.notice --tag myTag) 2> >(logger --priority user.error --tag myTag)

然而运行 /w nohup 会产生意想不到的结果

nohup sh -c ls /tmp 1> >(logger --priority user.notice --tag myTag) 2> >(logger --priority user.error --tag myTag) &

日志将包含“nohup:忽略输入”,有时甚至包含空条目。

有人可以帮我正确编写这个命令吗?

答案1

您正在将的输出重定向nohup到记录器。要重定向(或您的 Python 脚本)的输出ls,您可以使用命令替换

nohup sh -c $(ls /tmp 1> >(logger --priority user.notice --tag myTag) 2> >(logger --priority user.error --tag myTag)) &

相关内容