systemctl start custom.service가 반환되지 않습니다.

systemctl start custom.service가 반환되지 않습니다.

이것은 내 사용자 정의 서비스 파일(elastalert.service)입니다.

[Unit]
Description=Elastalert
Documentation=https://elastalert.readthedocs.io/en/latest/elastalert.html#configuration
Wants=network-online.target
After=network-online.target

[Service]
Type=Simple
RuntimeDirectory=elastalert
WorkingDirectory=/home/shubham/elastalert
User=shubham
Group=shubham
StandardOutput=journal
StandardError=inherit
TimeoutStartSec=0
ExecStart=/home/shubham/elastalert/startServer.sh
ExecStop=/home/shubham/elastalert/killServer.sh
ExecReload=/home/shubham/elastalert/reloadServer.sh
KillSignal=SIGTERM
PrivateTmp=true
Restart=always

[Install]
WantedBy=multi-user.target

다음은 종료하지 않고 지속적으로 실행되는 startServer.sh 스크립트입니다.

#!/bin/bash
cd /home/shubham/elastalert
NODE_PATH=. BABEL_DISABLE_CACHE=1 node index.js | ./node_modules/.bin/bunyan -o

실행 시 sudo systemctl start elastalert.servicestartServer.sh 스크립트가 실행되거나 반환되지 않습니다.

스크립트를 수동으로 실행하면 작동합니다.

이 명령은 sudo journalctl -u elastalert.service또한 아무것도 표시하지 않습니다.

Centos 7에서 실행 중입니다.

도와주세요.

편집하다

시작 후 스크립트가 자동으로 실행되지만 명령이 sudo systemctl stop elastalert.service반환되지 않습니다.

포트 3030에서 실행되는 서버를 수동으로 종료할 수 있습니다.

다음은 서버를 종료하는 스크립트입니다(killServer.sh).

#!/bin/bash
cd /home/shubham/elastalert
/bin/kill -9 $(lsof -t -i:3030)
rm -f /home/shubham/elastalert/elastalert.pid

그러나 해당 명령을 사용하여 재부팅을 시도해 sudo systemctl start elastalert.service도 반환되지 않습니다.

따라서 서버를 자동으로 시작하는 유일한 방법은 VM을 다시 시작하는 것이고, 서버를 중지하는 유일한 방법은 VM을 종료하는 것입니다.

관련 정보