Use expect , por exemplo,
#!/usr/bin/env expect -f
spawn -noecho ssh localhost "sleep 3; false"
catch wait status
exit [lindex $status 3]
Eu tenho um comando foo que (por razões que não precisamos entrar) precisa ter um pty alocado, ou seja, foo é bem-sucedida, mas nohup foo falha.
Qual é a maneira mais fácil de alocar um arquivo quando não há um? screen -D -m foo parece um exagero, e não retorna um código de saída (que eu preciso). Salvar para o código de saída, funciona.
Use expect , por exemplo,
#!/usr/bin/env expect -f
spawn -noecho ssh localhost "sleep 3; false"
catch wait status
exit [lindex $status 3]
Enquanto a resposta do @ thrig provavelmente funcionaria com expect (e eu inventei o mesmo), eu fiz uma pequena modificação para pty.c da Programação Avançada no ambiente UNIX® do Stevens para retornar o código de saída se -r for especificado. O resultado é aqui . Isso parece fazer o truque com o mínimo de barulho.
Tags pty