pty를 할당하는 래퍼(nohup의 반대)

pty를 할당하는 래퍼(nohup의 반대)

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

가장 간단하고 이식성이 뛰어난 솔루션입니다(안드로이드나 비지박스에서는 기본적으로 아직 사용할 수 없지만).

stdin과 stdout이 tty가 아니더라도 잘 작동합니다.

관련 정보