O MPlayer pára quando eu saio da sessão SSH no Linux

2

Eu quero lançar o MPlayer via SSH e deixá-lo rodar (sou fã de rádio). Para este I SSH para minha máquina remota (um Cubietruck rodando LUbuntu) e emita o seguinte comando:

screen mplayer -playlist .path/to/the/playlist

Tudo funciona como esperado, mas quando eu saio da minha sessão SSH a música pára completamente. Após o login novamente, não consigo mais encontrar minha instância de tela ( screen -ls diz que nenhum soquete foi encontrado em /var/run/screen/ )

Eu usei a tela com outro aplicativo (como o rTorrent) e tudo funcionou bem. Este é um problema específico do MPlayer?

Atualização: o motivo pelo qual eu uso a tela e não estou indo no modo "nohup" é que eu quero recuperar o acesso à instância do mplayer (mudar a estação, alterar a lista de reprodução, etc.)

    
por Daniel Platon 07.11.2014 / 18:31

2 respostas

2

Aqui está o seu comando:

screen mplayer -playlist .path/to/the/playlist

Usar screen parece um exagero. Para rodar processado continuamente em segundo plano em uma máquina Linux enquanto desconectado de uma sessão de terminal, eu recomendo usar nohup e & assim:

nohup mplayer -playlist .path/to/the/playlist &

nohup significa "não desligar", o que significa que você pode sair da sua sessão de terminal e o comando seguinte nohup continuará a ser executado. O & no uso do comando shell significa basicamente "pegar o comando anterior e executá-lo como uma tarefa em segundo plano". Então, se você combinar os dois, basicamente estará dizendo: "Execute o seguinte comando, mesmo se eu sair do terminal e executá-lo como um comando de segundo plano, para que minha sessão tenha acesso ao terminal novamente".

    
por 07.11.2014 / 18:51
0

Você deve dar uma olhada em: link

Bit interessante:

Remote control MPlayer

There are two types of people in this world: those who think MPlayer is the best media player in the history of existence, and those who are wrong. One of MPlayer's lesser-known features is the ability to control it from a console, a shell script or even over the network. The secret to this trick is in MPlayer's -slave option, which tells the program to accept commands from the stdin stream instead of keystrokes. Combine this with the -input option, and commands are read from a file, or a FIFO. For instance, try this in one terminal:

mkfifo ~/mplayer-control mplayer -slave -input file=/home/user/mplayercontrol filetoplay

Then, in another terminal or from a script, enter:

echo "pause" >~/mplayer-control

This command will pause the currently running MPlayer, and issuing the command again will resume playback. Note that you have to give the full path of the control file to MPlayer, with /home/user and so forth, because ~/mplayer-control alone won't work. There are plenty of other commands you can send to MPlayer - indeed, any keyboard operation in the program triggers a command that you can use in your control script. You can even operate MPlayer from another computer on the network, using SSH or Netcat. See this example:

ssh user@host "echo pause >mplayer-control"

Here, we log in to a remote machine (host) with the username user, and run a command to send pause to the remote machine's MPlayer control file. Of course, this can be made much faster if you have SSH key authentication enabled, as you don't need to give the password each time.

Se você executar o MPlayer no modo escravo como eles mencionam aqui, não importa qual console o MPlayer deve permanecer em segundo plano, observando o arquivo de entrada para seus comandos e não a janela do terminal que o chamou.

Última Nota: Eles dizem que blah de um terminal diferente apenas para mostrar que funciona em uma rede, desde que você edite o arquivo listado como eles mostram que não importa se o arquivo é editado pela mesma máquina ou outro todo o que importa é que o MPlayer está observando aquele arquivo para quaisquer comandos colocados nele e então age sobre o que o comando está pedindo para ele fazer.

    
por 07.11.2014 / 18:41