인디노트

우분투에서 있는 node 서버를 실행시키는 데몬 서비스 본문

정보

우분투에서 있는 node 서버를 실행시키는 데몬 서비스

인디개발자 2023. 4. 27. 21:32

우분투(Ubuntu)에서 Node.js 서버를 실행하는 방법은 여러가지가 있습니다. 그 중에서도 데몬(Daemon) 서비스를 이용하여 Node.js 서버를 백그라운드에서 실행시키는 방법이 있습니다. 데몬 서비스를 이용하면 시스템 부팅 시 자동으로 Node.js 서버가 실행되도록 설정할 수 있습니다.

다음은 우분투에서 Node.js 서버를 데몬(Daemon) 서비스로 실행시키는 방법입니다.

  1. 우선, systemd 서비스 파일을 생성합니다. sudo nano /etc/systemd/system/my-node-app.service 명령어를 사용하여 파일을 생성합니다.
  2. 다음과 같이 파일을 작성합니다.
[Unit]
Description=My Node.js App
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/node /path/to/your/node/app.js
Restart=on-failure

[Install]
WantedBy=multi-user.target
  • Description: 서비스에 대한 설명을 작성합니다.
  • After: 서비스가 시작되기 전에 실행되어야 하는 다른 서비스를 지정합니다. 이 경우 네트워크가 먼저 시작되어야 하므로 network.target을 지정합니다.
  • Type: 서비스가 실행되는 방식을 지정합니다. simple을 지정하면, 서비스가 실행될 때 기본적으로 부모 프로세스를 생성하지 않고 실행됩니다.
  • ExecStart: 서비스가 실행될 때 실행될 명령을 작성합니다. 이 경우 Node.js 실행 파일과 앱 파일의 경로를 지정합니다.
  • Restart: 서비스가 비정상적으로 종료될 때 자동으로 재시작할 것인지를 지정합니다.
  • WantedBy: systemd가 시작될 때 이 서비스가 시작되어야 하는 다른 타깃을 지정합니다.
  1. 작성이 완료되면 Ctrl+X, Y, Enter를 순서대로 눌러서 파일을 저장하고 닫습니다.
  2. 다음 명령어를 사용하여 systemd에 서비스를 등록합니다.
sudo systemctl daemon-reload
sudo systemctl enable my-node-app.service
  1. 서비스를 시작합니다.
sudo systemctl start my-node-app.service

이제 Node.js 앱이 백그라운드에서 실행됩니다. 서비스 상태를 확인하려면 sudo systemctl status my-node-app.service 명령어를 사용합니다. Node.js 앱을 중지하려면 sudo systemctl stop my-node-app.service 명령어를 사용합니다.

 

 

 

반응형
Comments