foo
(議論する必要がない理由で)ptyを割り当てる必要があるコマンドがありましたが、成功しましたが失敗しfoo
ましnohup foo
た。
ptyがないときにptyを割り当てる最も簡単な方法は何ですか?screen -D -m foo
過剰なようです。 an は (必要な) 終了コードを返しません。終了コードを保存すると機能します。
答え1
expect
たとえばを使用します。
#!/usr/bin/env expect -f
spawn -noecho ssh localhost "sleep 3; false"
catch wait status
exit [lindex $status 3]
答え2
@thrigの答えがうまくいくかもしれませんがexpect
(私は賛成投票しました)、私はそうしました。小さな修正pty.c
スティーブンスから出発UNIX®環境の高度なプログラミング-r
指定された場合は終了コードを返します。明らかにするここ。これにより、仕事が簡単に終わりそうです。
答え3
script /dev/null
最も簡単で移植性の高いソリューションです(AndroidやBusinessBoxでは基本的にはまだ利用できませんが)。
stdinとstdoutがttyでなくてもうまくいきます。