데몬으로 실행되는 Java 스크립트를 실행하고 있습니다. 입력하면 프로세스가 데몬으로 실행되는 것을 볼 수 있습니다 jps
. 나는 이 프로그램이 cron 작업에 의해 자동으로 실행되도록 고려하고 있으므로 데몬으로 실행하고 싶지 않습니다. 이렇게 하면 백그라운드에서 많은 데몬이 실행되는 것을 볼 수 있으므로 중지하고 싶습니다. Java 프로그램은 실행되어야 하지만 데몬 프로세스로는 실행되지 않으므로 누구든지 이 질문에 답할 수 있습니까?
나는 다음 명령을 사용하고 있습니다 :
java -cp $CP com.sdp.cloudwatch.DevAWSCloudWatch
그 전에는 다음을 사용했습니다.
nohup java -cp $CP com.sdp.cloudwatch.DevAWSCloudWatch &
프로그램이 데몬으로 실행되는 것을 방지하기 위해 제거했는데, 위 명령에서 nohup &
제거해도 nohup &
여전히 데몬으로 실행됩니다.
답변1
실제로 데몬으로 실행되고 있지 않은 것 같습니다. 실제 데몬은 다시 포크, setid 및 포크(및 기타 jiggery 포커)를 수행해야 하며 이는 Java 내에서 수행할 수 없습니다.
당신이 의미하는 것은 당신이 호출한 프로세스가 종료되지 않았다는 것입니다.
유일한 실용적인 옵션은 Java 코드를 다시 작성하는 것입니다.
답변2
Java 프로세스를 시작하기 위해 스크립트를 사용한다고 가정합니다. 이 경우 제어하려는 스크립트입니다(반복 인스턴스로 실행).
임시 파일을 생성하고 잠글 수 있습니다. 아직 열려 있는 창이 있더라도 상황이 바뀔 수 있지만 일반적으로 몇 분마다 스크립트를 예약하므로 작동합니다.
보고:중복 크론 작업 방지.