bash 스크립트에서 백그라운드 프로세스를 시작하고 싶지만 다른 이름을 지정하고 CTRL- 에 면역되도록 만들고 싶습니다 C. 나는 다음을 시도했다:
exec -a NiceName java -cp ....long java command line &
tail -f logs/the.log
exec
프로세스 에 java
.
SIGINT가 종료되는 프로세스에 전달되므로 CTRL-stop Cscript/tail을 누를 때까지 작동합니다 .java
나는 또한 (exec ...&)
및 의 조합을 시도했습니다 (exec ...)&
. 작동하는 것은 무엇입니까
exec bash -c "java command line escaping hell&"
tail -f logs/the.log
하지만 지옥에서 벗어나지 않을 방법이 있었으면 좋겠어요. 나는 또한 성공하지 못한 채 몇 가지를 시도했습니다 disown
.
을 제거하면 exec
하위 프로세스는 CTRL- 의 영향을 받지 않지만 C이름을 지정할 수는 없습니다.
답변1
좀 더 실험한 후에 다음과 같은 방법을 찾았습니다.
(trap "" SIGINT; exec -a NiceName java -cp ....long java command line &)
tail -f logs/the.log
SIGINT
서브쉘 무시는 exec
ed 명령에 의해 java
상속 됩니다. 전경에서 실행 bash
/ tail
계속 CTRL-C를 사용하여 종료할 수 있습니다.