将 nohup 与带有参数和文件重定向的内置 unix 命令一起使用

将 nohup 与带有参数和文件重定向的内置 unix 命令一起使用

我想运行这个命令:

tail -f mylog.log > snippet.log

我想在后台运行它,而不用担心 shell 超时或其他问题。

这会引发警告和错误:

nohup tail -f mylog.log > snippet.log & > nohup2.out (or dev null)

正确的命令是什么?

答案1

你的代码没有意义。

如果你想重定向 stdin 和 stderr 通道,那么你将使用这个:

nohup tail -f mylog.log > ./messages.log 2> ./errors.out

如果您希望所有消息都放入一个文件中,您可以使用:

nohup tail -f mylog.log > all_messages.txt 2>&1

如果你想复制消息,你可以使用:

nohup tail -f mylog.log | tee messages1 messages2 ...

答案2

我认为您正在尝试将 nohup 本身的任何消息获取到 nohup2.out 中,但是 & async 结束了整个命令,最终的重定向只会清空文件。

这似乎有效。我关闭了原始 shell,然后尝试了kill -HUP 和kill -INT,这两种方法都幸免于难。

nohup >nohup2.out 2>&1 bash -c 'tail -f mylog.log > snippet.log' &

相关内容