백그라운드에서 여러 nohup 명령 실행


12

cmd1과 cmd2라는 두 명령이 있습니다. 이 중 cmd2를 완료하는 데 시간이 더 걸립니다. cmd2를 실행 한 다음 cmd1을 실행해야합니다.

다음과 같은 방법으로 실행하려고했습니다.

bash$ (nohup ./cmd2>result2 &) && nohup ./cmd1>result1 &

또는

bash$ (nohup ./cmd2>result2 &) ; nohup ./cmd1>result1 &

그러나 cmd1이 cmd2가 끝나기를 기다리지 않고 result1이 채워지는 것을 볼 수 있습니다.

둘 다 nohup 프로세스이고 백그라운드에서 실행되어야 할 때 cmd2 이후에 cmd1을 실행하는 방법은 무엇입니까?


이 질문은 이미 요청합니다 unix.stackexchange.com/questions/67006/...
라훌 파틸를

2
unix.stackexchange.com/questions/67006/… 의 질문 은 실행 순서를 유지하기 위해 약간 다릅니다. 다른 질문을 이해하는 데 잘못되면 저를 정정하십시오.
user33767

답변:


12

둘 다 cmd1만들고 cmd2병렬로 실행합니다. “백그라운드에서 cmd2를 시작하고 그와의 연관성을 끊습니다. 백그라운드에서 cmd1을 시작하고 그것과의 관계를 끊습니다.” “백그라운드에서 cmd2를 시작하십시오. 완료되면 cmd1 (백그라운드에서도)을 시작하십시오.” 백그라운드 작업과 더 이상 연결이 없으므로 cmd2를 수행 한 다음 cmd1을 수행하는 백그라운드 작업을 고안해야합니다. 이것은 cmd2; cmd1(또는 cmd2 && cmd1cmd2가 성공한 경우에만 cmd1을 실행하는 것이므로) nohup백그라운드에서 실행중인 쉘을 시작하도록 지시 해야 합니다.

nohup sh -c './cmd2 >result2 && ./cmd1 >result1' &

감사. 잘 작동합니다. 그래, 내가 생각한 것은 첫 번째 cmd를 배경으로 만든 후에는 두 번째 명령에 영향을 미치지 않습니다. 백그라운드로 명령을 보내는 방법에 대한 설명서를 읽어야합니다.
user33767

3

nohup을 사용하지 않는 경우 :

{ command1 >result1 2>&1 && command2 >result2 2>&1 ; } & disown

확인하겠습니다. 그러나 현재 Giles의 명령으로 sh로 감싸 인 대답이 있습니다. 어쨌든 감사합니다
user33767

이것은 나쁜 생각입니다. 콘솔에서 사용자가 로그 아웃하면 세션이 종료됩니다.
mootmoot

@mootmoot 이것은 의도 한대로 작동합니다. 직접 확인하십시오. 부모 쉘이 종료되면 명령이 SIGHUP을받지 않습니다.
artyom

예, crond / crontab을 사용하여 명령을 실행하면 쉘 안전합니다. 그러나 pty / xterm / ssh는 안전하지 않습니다. unix.stackexchange.com/questions/3886/…
mootmoot

2

간단히 사용하십시오 :

nohup ./cmd2>result2 & nohup ./cmd1>result1 & nohup ./cmd3>result3 &

여러 명령을 실행하는 것이 좋지만 cmd2를 먼저 실행 한 다음 cmd1을 실행 순서대로 유지하려면 위 명령으로 발생하지 않습니다. 감사합니다
user33767

0

cmd2 및 cmd1으로 정확히 수행중인 작업을 알려주십시오. 명령 유형에서 원하는 작업 및 출력 유형에 따라 다릅니다. 명령으로 키를 두 번 누르는 문제가 발생하면이 게시물을 통해 알 수 있습니다.

이 방법으로도 갈 수 있습니다

nohup `cmd2 && ccmd1` > Output.out 2> Error.err < /dev/null & 

아래 주어진 스크린 샷을 참조하십시오. 여기에서는 3 개의 명령을 사용하고 있으며 모두 하나씩 순차적으로 실행 중입니다. 이 작업에 백틱을 사용했습니다. 스크린 샷에서 날짜 시간 스탬프를 볼 수도 있습니다. sleep 명령은 60 초이므로 60 초 후에 다음 명령이 성공적으로 실행됩니다. 작업 명령을 사용하여 백그라운드에서 여전히 실행중인 명령이 있는지 확인했습니다. 여기 없어 볼 수있는 작업 수는 1입니다.

nohup-multiple-command

이 스크린 샷은 보이지 않는 경우이 링크 에서도 사용할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.