bash 스크립트에서 itterminal을 종료하는 방법은 무엇입니까?

bash 스크립트에서 itterminal을 종료하는 방법은 무엇입니까?

터미널에서 bash 스크립트를 사용하여 프록시체인으로 emacs를 시작한 다음 터미널을 종료하고 싶습니다. 하지만 코드는

(proxychains emacs &)
exit 0

터미널에서 나가지 마세요. 해결 방법이 무엇입니까?

답변1

이 테스트 스크립트를 사용해 보세요.

t.sh

#!/bin/bash
sleep 5
echo bye bye
sleep 5
pid=$( ps -f | grep "bash" | grep -v grep )
kill -HUP $pid

좋아, 새 명령줄 터미널 창을 엽니다. 이 창에서 방금 생성한 bash 스크립트를 실행합니다(위에 표시된 대로 이름을 "t.sh"라고 가정).

bash t.sh

쉘 스크립트가 시작된 bash 프로세스를 종료하여 자살하므로 10초 후에 명령줄 창이 사라지는 것을 볼 수 있습니다.

더 쉬운 방법이 있을 것 같은데 그게 무엇인지 기억이 나지 않습니다.

어쨌든, 귀하의 설명에 따르면 이것이 귀하가 달성하고자 하는 것이라고 생각합니다.

편집하다:

나는 실제로 위의 솔루션을 좋아하지 않습니다. 내가 보기에 당신이 정말로 원하는 것은 아마도 백그라운드에서 bash 스크립트를 실행하고 로그아웃할 수 있도록 "nohup"을 사용하는 것 같습니다.

그러면 프로세스가 완료되고 사라질 때까지 계속 실행됩니다. 이는 기본적으로 귀하가 요구하는 것입니다.

다음을 수행할 수 있습니다.

t1.sh

#!/bin/bash
echo "I am doing my thing then leaving" > /tmp/t1.log
sleep 10
exit 0

그런 다음 명령줄에서 다음을 수행합니다.

nohup bash t1.sh &

그런 다음 로그아웃하세요.

15초 후에 돌아오면 출력이 포함된 "/tmp/t1.log" 파일이 있어야 합니다.

관련 정보