Linux Ubuntu - systemctl start와 동일한 경로인 .service 파일을 사용하여 ExecStart를 실행합니다.

Linux Ubuntu - systemctl start와 동일한 경로인 .service 파일을 사용하여 ExecStart를 실행합니다.

저는 Linux를 처음 접했기 때문에 제 질문이 명확하지 않은 것 같습니다. 앞으로는 Linux를 충분히 배워서 좀 더 간결하게 만들 수 있기를 바랍니다.

문제는 뚜렷한 이유 없이 충돌하는 서비스(Thingsboard 3.6.1PE)를 실행하는 서버가 있다는 것입니다(화이트 라벨이 원인인 것 같지만 더 철저하게 검색할 만큼 이 OS를 잘 알지 못합니다). 서비스가 충돌하면 자동으로 다시 시작하기로 결정했습니다. 최선의 해결책은 아니지만 작업이 완료되어야 합니다.

나는 그것을 /etc/systemd/system/thingsboard.service다음과 같이 수정했습니다 :

[Service]
ExecStart=/bin/bash /usr/share/thingsboard/bin/thingsboard.jar
Restart=always
RestartSec=5s

사용이 허용됩니다 systemctl start thingsboard. 그 후에는 서비스가 제대로 작동합니다. 하지만 of를 사용한 후에 systemctl stop thingsboard는 자동으로 다시 시작해야 합니다. 그렇지 않습니다. 대신 비활성화됩니다.

     Loaded: loaded (/etc/systemd/system/thingsboard.service; enabled; vendor preset: enabled)
     Active: inactive (dead) since Thu 2024-02-01 11:45:10 CET; 4s ago
    Process: 1493891 ExecStart=/bin/bash /usr/share/thingsboard/bin/thingsboard.jar (code=killed, signal=TERM)
   Main PID: 1493891 (code=killed, signal=TERM)
        CPU: 7min 53.762s

그럼에도 불구하고 다음 이후에 활성화됩니다 systemctl start.

     Loaded: loaded (/etc/systemd/system/thingsboard.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2024-02-01 11:46:06 CET; 1s ago
   Main PID: 1496816 (bash)
      Tasks: 28 (limit: 9388)
     Memory: 198.9M
        CPU: 5.612s
     CGroup: /system.slice/thingsboard.service

제 질문은 다음과 같습니다. 다시 시작하려면 .service 파일에 무엇을 넣어야 합니까? 어리석은 질문이라면 죄송합니다. 하지만 저는 Linux를 처음 접하는 사람이므로 이 서비스가 더욱 강력한지 확인해야 합니다. 어떤 답변이라도 매우 감사하겠습니다. 어쩌면 다른 방법으로 해야 할 수도 있습니다(아직 모르겠습니다).

답변1

문제가 해결되었습니다.@murulu이것에논평:

"systemctl stop thingsboard를 사용한 후 자동으로 다시 시작해야 합니다."...이것은 의도된 것입니다. 관리자가 서비스를 명시적으로 중지한 후 자동으로 다시 시작하도록 서비스를 설정할 수 있다면 대부분의 관리자는 미칠 것입니다. 대신, 테스트하려면 Restart=Always외부에서 프로세스를 종료하거나 다른 방법으로 종료되도록 하세요.

관련 정보