입력으로 Nohup 명령 실행 과정은 어느 시점에서 내가 입력해야

UNIX에는 nohup을 사용하여 실행하려는 프로세스가 있습니다. 그러나이 과정은 어느 시점에서 내가 입력해야 yes하거나 no계속 진행 하라는 프롬프트를 기다립니다 . 지금까지 UNIX에서는 다음을 수행했습니다.

nohup myprocess <<EOF
y
EOF

따라서 nohup을 사용하여 ‘myprocess’프로세스를 시작하고 ‘y’로 파일에 파이프를 지정한 다음 파일을 닫습니다. 위의 줄은 실제로 세 가지 별도의 명령입니다. 즉, UNIX의 첫 번째 줄에서 Enter 키를 누른 다음 ‘y’를 입력하라는 메시지가 표시되면 Enter 키를 누른 다음 ‘EOF’를 입력하고 다시 return 키를 누르십시오. 그래서 이것은 완벽하게 작동하지만 내 문제는 다음과 같습니다.

이제 이것을 Perl에서 실행하고 싶지만이 명령이 세 줄 이상이므로 어떻게 실행할 수 있는지 잘 모르겠습니다. 다음이 작동하는지 모르겠습니다.

my $startprocess = `nohup myprocess <<EOF &
y
EOF
`


답변

y프로세스의 stdin에 싱글을 쓰려면 다음 과 같이하십시오.

(echo y | nohup myprocess) &

y나오는 모든 프롬프트에 대해 계속 쓰기 를 원한다면 coreutil yes은 정확히이 목적을 위해 존재합니다. 기본값은 “y”를 출력하는 것이므로 다음을 수행 할 수 있습니다.

(yes | nohup myprocess) &

그러나 다른 것이 필요하면 인수로 전달할 수 있습니다.