Dos comandos en uno

Hola gente,

Necesito un comando que arranque Rhythmbox y lo ponga en play. El comando "rhythmbox" arranca el programa, pero pausado. Y no hay opción que haga que comience en play. El comando "rhythmbox-client --play" lo pone en play, pero necesita que haya una instancia de rhythmbox corriendo.

¿Cómo puedo unir ambos comandos en uno solo para que primero arranque RB y justo después lo ponga a reproducir? He probado "rhythmbox & rhythmbox-client --play" y "rhythmbox && rhythmbox-client --play", pero ninguno de los dos parece que funcione.

Gracias de hantebraso.
rhythmbox && rhythmbox-client --play


Eso debería funcionar, excepto que el comando rhythmbox mienta y acabe antes de que la instancia esté lista. Intenta dar más detalles, 'no parece funcionar' no es particularmente iluminador.

- ferdy
Ferdy escribió:'no parece funcionar' no es particularmente iluminador


Pues tienes toda la razón. Básicamente, RB se inicia pero no comienza a reproducir. La terminal tampoco da datos adicionales.
¿Y si añades un sleep en medio?

- ferdy
prueba arrancar rhythmbox asi: "rhythmbox --play-pause"
Yo tengo algo parecido, pero con tvtime:

tvtime -d /dev/video1 & sleep 3s && tvtime-command SET_MATTE 16:10 AUTO_ADJUST_WINDOW

Tengo que esperar los 3 segundos porque a veces no le da tiempo al programa a cargarse.

Si lo quieres para un lanzador de gnome, que yo sepa, tendrás que meterlo en un shell script pues no lo acepta de otra forma.
Ferdy escribió:¿Y si añades un sleep en medio?


rhythmbox && sleep 20 && rhythmbox-client --play

Debería funcionar, pero por algún motivo no lo hace :?
Al habla el transparente.

comando1 & sleep 3 && comando2
rhythmbox & sleep 5 && rhythmbox-client --play


funciona, lo acabo de probar ;)


pd: pregunta facil: el && pasa a la siguiente accion solo cuando al primera ha terminado mientras que & las lanza "en paralelo"? o me estoy mareando?
El & es para lanzar un proceso en segundo plano (background) y el resultado "creo" que es el que tu propones (en paralelo)
Justo eso. Excepto que no lo lanza 'en paralelo' si no que la primera tarea se pone en el 'background'.

Y && solo ejecuta la segunda parte si la primera acabó con estado OK (0).

- ferdy
vale, creo que esta claro xD

tengo otra duda,ya por curiosidad:

el comando en cuestion, ejecutado desde consola, hace que si cierro consola, el programa se cierre, en un primer momento he pensado que añadiendo & al final de la linea se solucionaba, asi:
rhythmbox & sleep 5 && rhythmbox-client --play &

pero no, se cierra igual....

a bote pronto, eso deberia funcionar, primero rhythmbox en segundo plano, luego sleep y a los 5 segundos play en segundo plano.... deberia poder cerrar el terminal sin problema.


donde esta el fallo?


EDIT:

vale, ni
rhythmbox &

me permite mantener el programa al cerrar el terminal, por tanto el fallo es de mis suposiciones xD

cual seria el comando para poder cerrar el terminal?
lo puedes lanzar, si tienes kde desde run comand, en gnome no se si es lo mismo.

En kde se accede con

alt + F2

prueba a ver, el comando se queda guardado pa otras veces
Para eso necesitas nohup o un truco muy feo que no tiene ni por qué funcionar:

comando 2&1 >/dev/null </dev/null &


Para más detalles es necesario aprender algo sobre Unix. 'Operating Systems: Design and Implementation - 2E . Andrew S. Tanenbaum' es un buen sitio para comenzar.

O usar nohup...

- ferdy
o te creas un launcher, no conocia el nohup, gracias!
el man no da muchos datos...

nohup comando o nohup opcion.. y no explica las opciones xD

nohup rhythmbox

nohup rhythmbox &


siguen sin dejarme cerrar el terminal manteniendo la aplicacion...


total, solo es curiosidad, o aprender un poquitin mas xD

los trucos feos no son de mi agrado xD


muchas gracias a todos, aun sin tener exito se aprende ;)


pd: pitufen, esta claro, gracias tambien. de todas formas siempre puedo crear un lanzador.
la gracia era hacerlo desde terminal y poder cerrar terminal.
pues supongo que tendras que poner

nohup rythmbox& sleep 3 && rhythmbox-client --play&
17 respuestas