我正在使用 sox 在我们的本地服务器 (ubuntu 16.04) 上播放声音。我通过 ssh 运行 play myfile.mp3。
但是,只有我登录本地服务器后才会播放该声音。有没有办法在无人登录的情况下实现该功能?
谢谢
[编辑] 目标是不要登录,执行某些操作然后注销并保持运行。目标是通过 ssh 在本地服务器上播放该声音,而根本不需要登录本地服务器的 GUI。
答案1
要使用一行程序直接启动播放器,请执行以下操作:
ssh user@host 'cvlc music/Ratatat/LP4' # VLC opens whole directories
ssh user@host 'play music/Ratatat/LP4/*' # SoX don't
如果您处于ssh
会话中并且希望进程在您exit
退出后仍然保持运行,则可以使用disown
以下命令断开该进程与运行它的 shell 的连接:
$ ssh user@host
$ cvlc music/Nick_McKaig & disown
$ exit
这是最简单的方法,但是您无法像使用以下方法那样返回会话screen
(请参阅马克斯的回答) 或者tmux
。
答案2
您可以使用服务器上的程序屏幕(https://help.ubuntu.com/community/Screen,http://www.gnu.org/software/screen/)。
$ sudo apt-get install screen # if not installed on the server
通过 SSH 登录并启动屏幕
$ screen -S my_sound_bash
开始播放音乐。您可以使用Ctrl+ A+D离开当前屏幕会话并注销。音乐应该仍在播放。
您可以使用 SSH 再次登录,并使用
$ screen -r my_sound_bash
你应该让你的跑动球员回来。
答案3
尝试使用以下命令须藤
sudo mpv myfile.mp3
然后它就开始在扬声器上播放
这很可能是权限 例如,如果您正在运行 Pulseaudio。有了正确的权限,您就可以通过 ssh 在远程机器上播放声音。
我们需要更新 pulseaudio 的权限(至少在我的情况下),因为它可以使用 sudo 正常工作
希望它有帮助。