쉘 프로세스에서 프로그램을 실행하지 않고 bash 쉘에서 프로그램을 실행하는 방법

쉘 프로세스에서 프로그램을 실행하지 않고 bash 쉘에서 프로그램을 실행하는 방법

bash 쉘에서 Nemo를 실행하는 경우 Nemo 프로세스를 종료할 때까지 해당 쉘에서 다른 명령을 실행할 수 없습니다.

그게 내 문제야. 다른 셸을 열거나 시작된 프로세스를 종료하지 않고도 다른 명령을 실행할 수 있기를 원합니다.

답변1

exec Nemo

실행되지 않습니다Nemo 쉘 하위 프로세스에서Nemo, 즉 쉘 프로세스에서 실행 되므로 쉘을 Nemo.

하지만 그것은 당신이 원하는 것이 아닌 것 같습니다.

여기서 원하는 것은 별도의 프로세스에서 명령을 실행하는 것 같지만 쉘은 그렇게 하지 않습니다.기다리다다음 프롬프트를 발행하기 전에 프로세스를 완료하십시오.

이렇게 하려면 다음을 사용할 수 있습니다.

Nemo &

비동기식으로 실행 됩니다 Nemo. 또한 NemoCtrl+C를 누를 때 터미널에서 읽거나 SIGINT에 의해 종료되는 것을 방지하기 위해 대화형 셸에서 완료될 때 백그라운드에 배치됩니다.

명령은 여전히 ​​셸의 작업 목록에 있습니다. 를 사용하여 다시 전경으로 가져올 수 있습니다 fg. 또한 쉘은 종료할 때 이를 종료하려고 시도합니다(적어도 일부 쉘에서는).

포함된 일부 쉘의 경우 이 명령을 사용하여 쉘에 이를 잊도록 지시 bash할 수도 있습니다 . disown를 사용하면 zsh다음과 같이 시작할 수도 있습니다.

Nemo &!

백그라운드에서 시작하고 즉시 거부합니다.

답변2

백그라운드에서 명령을 실행하는 방법을 말씀하시는 건가요?

"&"를 사용하여 해당 명령을 완성하면 됩니다.

예:

$ nemo &

관련 정보