우분투 서버에서 http-server를 영원히 실행하십시오.

우분투 서버에서 http-server를 영원히 실행하십시오.

우분투 서버가 있습니다. 거기에 js 및 html 코드가 포함된 일부 파일을 전송했습니다.

저는 node.js의 http-server를 사용하여 웹 서버를 시작하여 서버에 html 페이지를 표시할 수 있습니다.

시스템 연결을 끊거나 종료해도 계속 실행되도록 nohup을 사용합니다.

이것은 내가 사용하는 명령입니다:

nohup http-server -p 8000 -a 10.4.145.182 & 

이제 이를 통해 10.4.145.182:8000의 파일을 시각화할 수 있지만 얼마 후 서버가 다운되고 사람들이 브라우저에서 해당 IP의 html 페이지에 액세스할 수 없다는 것을 알았습니다.

nohup은 사람들이 시스템을 종료하거나 서버에서 로그아웃하더라도 백그라운드에서 실행되는 작업이라고 생각합니다.

그래서 이리저리 물어보니 누군가 pm2를 써보라고 제안하더군요. 그래서 설치했습니다.

pm2를 사용하라는 조언에 따라 최신 버전의 node를 설치한 후 pm2를 사용하여 서비스를 시작했습니다.

http-server의 서비스가 시작되었다고 하는데 브라우저에서 포트 8000을 사용하여 IP에 접속하면 열리지 않습니다.

이것은 html 및 d3 파일이 포함된 디렉터리에서 실행하는 명령입니다.

$ pm2 start $(which http-server) -p 8000  

이것은 pm2 쉘의 출력입니다.

여기에 이미지 설명을 입력하세요.

서버를 멈추지 않고 영원히 실행시키는 방법은 무엇입니까? pm2에 무슨 문제가 있나요?

답변1

결과에 신경쓰지 않고 그냥 이런 짓을 하고 싶다면...

#!/bin/bash

while sleep 5; do
    http-server -p 8000 -a 10.4.145.182
    wait 
done 

그런 다음 스크립트에 이름을 지정하고 실행 권한을 부여하면 "서버"가 계속 다시 시작되는 것을 원하지 않을 때 스크립트를 종료할 수 있습니다. 이론적으로는 완료되면 서버를 다시 시작합니다.

이것은 귀하의 질문에 대한 답변일 뿐이지만 의견에서 제안한 대로 시스템 단위를 사용하는 것이 훨씬 좋습니다.

다음은 시스템이 자동으로 장치를 다시 시작하는 몇 가지 예입니다. https://singlebrook.com/2017/10/23/auto-restart-crashed-service-systemd/

관련 정보