如何防止nohup创建〜/ nohup.out文件?


16

我使用命令$ nohup ...在后台启动应用程序,以便以后可以关闭终端窗口。

执行后,它将创建文件~/nohup.out

例:

orschiro@x230:~$ nohup /bin/bash -c "sleep 15 && python3 /home/orschiro/bin/show_state.py"
nohup: ignoring input and appending output to 'nohup.out'

如何防止nohup创建nohup.out


2
您可能还会考虑byobu。:)
Andrea Lazzarotto

谢谢@AndreaLazzarotto!能给我一个例子,如何使用它吗?
orschiro'8

2
好吧,我建议您看一下此处的视频:byobu.co基本上,对于您要执行的操作,只需运行byobu,开始所需的操作,然后按F6即可完成。您可以通过byobu再次运行回到它。
安德里亚·拉扎罗托

优秀!您可能要将此添加为正式答案?
orschiro's

从技术上讲,我的建议根本无法回答您的问题,这只是一种选择。:D
Andrea Lazzarotto'9

Answers:


20

您可以将输出重定向到任何您喜欢的位置,例如:

nohup /bin/bash -c "sleep 15 && python3 /home/orschiro/bin/show_state.py" >/dev/null 2>&1

重定向阻止nohup.out创建默认输出文件。/dev/null是遗忘的,因此,如果您根本不需要数据,则将其发送到该位置。

在bash中,您可以缩写>/dev/null 2>&1&>/dev/null

例如,对于经常使用的程序,我会使用别名(并将其添加到.bashrc

alias show_state='nohup /bin/bash -c "sleep 15 && python3 /home/orschiro/bin/show_state.py" >/dev/null 2>&1'

现在我要输入的是 show_state


2
@orschiro:几年后它不会变得晦涩,您会记住它的;)我建议您坚持使用它,因为将其别名化意味着您将不会获得经验,并且不了解BASH重定向操作员如何工作你的头是至关重要的技能。
与莫妮卡(Monica)进行的轻度比赛

从功能上来说这会更好吗?像show_state () { /bin/bash -c "$@" &>/dev/null }什么?(警告:语法差,可能无法正常工作!这只是一个例子!)。一提要:为什么show_state当您丢弃输出时nohup
伊斯梅尔·米格尔

我不知道脚本的作用是@IsmaelMiguel,但我认为它是带有托盘图标的指示器,而不是将“状态”(无论它是什么)打印到stdout。当然,函数可能比别名^。^更有趣
Zanna

哦,我明白了!抱歉,没有看到.py文件名。是的,功能更加有趣。我在Debian桌面上有这个写得不好的功能:shutup() { source "$@" >/dev/null 2>&1 & }。而且有效。也许您可以提出类似的建议,但要好得多?
伊斯梅尔·米格尔

我从来不知道它能&>起作用(在我看来,它看起来像是背景加上标准输出重定向)。我一直都学着>&。是标准的吗?
Random832
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.