STDIN의 입력을 받아들이는 nohup에서 실행되는 프로세스를 위한 파이프/전송 명령

STDIN의 입력을 받아들이는 nohup에서 실행되는 프로세스를 위한 파이프/전송 명령

을 사용하여 실행하는 프로그램이 있습니다 nohup program &. 이 프로그램은 의 입력을 받아들입니다 STDIN. STDIN를 통해 실행 중인 프로그램 에 텍스트를 보낼 수 있는 방법이 있습니까 nohup?

이것은 bash를 실행하는 FreeBSD에 있습니다. Linux에서도 이것이 어떻게 수행되는지 보고 싶습니다.

답변1

nohup에서 리디렉션된 표준 입력을 사용하여 프로그램을 실행합니다 /dev/null(명령 자체를 리디렉션하지 않았다고 가정 nohup). 따라서 이 프로그램에 입력을 보낼 수 없습니다.

프로그램에 입력을 보내려면 프로그램을 시작할 때 입력을 리디렉션하세요.

nohup program <input-file.txt &  # input from a file
nohup data-producer | nohup program &  # input from another program
mkfifo program.pipe; nohup program <program.pipe &  # input from a named pipe, feed it what you want later

(실제로 디버거나 다른 핵을 사용하여 프로그램의 표준 입력을 다른 소스에 다시 연결하는 것이 가능할 수 있습니다 ptrace. 입력의 출처를 계속 추적하면 프로그램이 중단될 수 있습니다.SSH를 통해 실행 중인 프로세스를 일시 중지하고, 소유하지 않고, 새 화면 셸에 연결하고 일시 중지를 해제하려면 어떻게 해야 합니까?; 이 주제에 관해 SE 네트워크에 다른 질문이 있습니다.)

관련 정보