Obtenga el PID de un proceso iniciado con nohup a través de ssh

Quiero iniciar un proceso utilizando nohup en una máquina remota a través de ssh. El problema es cómo iniciar el PID del proceso con nohup, por lo que el "proceso realmente está haciendo algo", no una instancia de shell externo o algo similar. Además, quiero almacenar stdout y stderr en archivos, pero ese no es el problema aquí ...

A nivel local, funciona perfectamente utilizando

nohup sleep 30 > out 2> err < /dev/null & echo $!

Me está haciendo eco del PID exacto del comando "sleep 30", que también puedo ver usando "top" o "ps aux | grep sleep".

Pero estoy teniendo problemas para hacerlo de forma remota a través de ssh. Probé algo como

ssh remote_machine 'nohup bash -c "( ( sleep 30 ) & )" > out 2> err < /dev/null'

pero no puedo averiguar dónde colocar el "eco $!" para que se muestre en mi shell local. Siempre me muestra PID incorrectos, por ejemplo el de la instancia "bash", etc.

¿Alguien tiene una idea de cómo resolver esto?

EDIT: OK, el "bash -c" podría no ser necesario aquí. Como señaló Lotharyx, obtengo el PID correcto al usarlo

ssh remote 'nohup sleep 30 > out 2> err < /dev/null & echo $!'

pero luego el problema es que si sustituye "sleep 30" con algo que produce salida, por ejemplo, "echo Hello World!", esa salida no termina en el archivo "out", ni en el lado local ni en el remoto. ¿Alguien tiene una idea de por qué?

EDIT2: mi culpa! Simplemente no quedaba espacio en el otro dispositivo, por eso los archivos "out" y "err" se quedaron vacíos.

Así que esto está funcionando. Además, si uno quiere llamar a varios comandos en una fila, separados por un punto y coma (;), todavía puede usar "bash -c", así:

ssh remote 'nohup bash -c "echo bla;sleep 30;echo blupp" > out 2> err < /dev/null & echo $!'

Luego imprime el PID de "bash -c" en el lado local, lo cual está bien. (Es imposible obtener el PID del proceso "interno" u "ocupado", ya que cada programa puede generar nuevos subprocesos, no hay forma de averiguarlo ...)

Respuestas a la pregunta(1)

Su respuesta a la pregunta