저는 nohup과 &를 사용하여 Java 프로세스를 시작합니다(백그라운드에서 실행). 이 프로세스는 종종 종료됩니다. 종료 시점에 대한 패턴은 없습니다. 애플리케이션(java 프로세스) 로그에서 SIGTERM 신호를 수신하고 있음이 분명합니다. 그래서 strace를 사용하여 SIGTERM 신호의 소스를 알아냈고 그것이 시스템이라는 것을 알아냈습니다.
systemd가 관리하지 않는 프로세스를 종료하려고 하는 이유는 무엇입니까?
추적 출력
13:35:20.838755 futex(0x7f1ef1ae49d0, FUTEX_WAIT, 16917, NULL) = ? ERESTARTSYS (To be restarted if SA_RESTART is set)
22:17:17.211643 --- SIGTERM {si_signo=SIGTERM, si_code=SI_USER, si_pid=1, si_uid=0} ---
22:17:17.211876 futex(0x7f1ef0e9c720, FUTEX_WAKE_PRIVATE, 1) = 1
22:17:17.211974 rt_sigreturn({mask=[]}) = 202
22:17:17.212183 futex(0x7f1ef1ae49d0, FUTEX_WAIT, 16917, NULL) = ?
22:17:17.538874 +++ exited with 143 +++
DMESG와 메시지 로그를 샅샅이 뒤져봤지만 프로세스가 종료된 이유를 나타내는 것이 없습니다.
편집: Java 프로세스는 사용자가 bash 명령으로 시작합니다. 그러나 사용자 로그인은 시스템 단위인 pblocald를 사용하여 제어됩니다.