我想禁用从 bash 调用 VLC 时从 VLC 获得的输出。您可以在下图中看到该输出:
那么,我该如何禁用它呢?
像描述的那样将输出重定向到 /dev/null这里不起作用。
请注意,在图片中,我必须发送两次kill 信号才能杀死它,为什么如果只有一个进程呢?或者有两个吗?也许实际上有两个进程,并且使用我的命令仅第一个进程的输出被重定向。?
如果我在后台运行它,然后发送终止信号,首先,看起来进程不再在 shell 中运行,而只是在窗口中运行,但是,很快我又收到一些消息。看看图片:
所以无论如何,我只想禁用该输出。
更新:我也想在后台运行它。
vlc &> /dev/null
以下应该有效,但现在我已经尝试过,但效果不佳。
vlc "filename" &> /dev/null &
我播放该文件,一开始看起来不错,然后我开始更改目录并发出其他命令,VLC 输出再次出现
但这是我第一次尝试,现在它有效了,所以我想它将来也会有效。
答案1
如果使用vlc > /dev/null
,标准输出将被重定向到,/dev/null
但标准错误将到达终端。您必须使用vlc &> /dev/null
将重定向两个标准输出的命令和标准误差。我已经测试过这个并且它有效。根据手册,vlc -q
将启用“安静”模式(抑制输出) - 我还没有对此进行测试。
编辑我不完全确定“在后台”是什么意思,但是程序屏幕(sudo apt install screen
)将允许您在终端中启动命令,然后关闭终端但保持命令运行。nohup
也可以这样做。或者,尝试在桌面上按 Alt-F2,您可能会收到运行命令的提示。您可以从那里运行 vlc,但与 screen 不同,您稍后无法在终端中与 vlc 交互。
另一个编辑 这个问题看起来正是您所需要的。如何在命令行模式下禁用VLC输出?