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