개발

Linux에서 npm을 백그라운드에서 실행하는 방법

농담곰이 2023. 5. 4. 23:37
반응형

리눅스에서 npm 프로세스를 백그라운드에서 실행하는 방법은 다양합니다. 아래에는 대표적인 방법들을 소개하겠습니다.

1. `&`를 사용하여 백그라운드 실행하기

`&` 기호를 사용하여 npm 프로세스를 백그라운드에서 실행할 수 있습니다. 예를 들어, 다음과 같은 명령어를 실행하면 npm 프로세스가 백그라운드에서 실행됩니다.

```bash
npm start &
```

위 명령어에서 `&`는 npm 프로세스를 백그라운드에서 실행하는 역할을 합니다.

2. `nohup`을 사용하여 백그라운드 실행하기

`nohup` 명령어를 사용하여 npm 프로세스를 백그라운드에서 실행할 수 있습니다. `nohup` 명령어는 실행한 명령어의 출력 결과를 무시하고, 백그라운드에서 실행되도록 합니다.


```bash
nohup npm start &
```

위 명령어에서 `nohup` 명령어는 npm 프로세스를 백그라운드에서 실행하도록 하고, `&`는 백그라운드에서 실행하는 역할을 합니다.

3. `systemd`를 사용하여 서비스 등록하기

`systemd`를 사용하여 npm 프로세스를 서비스로 등록하고, 백그라운드에서 실행할 수 있습니다. `systemd`를 사용하면 시스템 부팅 시 자동으로 npm 프로세스를 실행할 수 있습니다.

먼저, `systemd` 서비스 파일을 생성합니다.

```bash
sudo nano /etc/systemd/system/myapp.service
```

위 명령어를 실행하면, `myapp.service` 파일을 생성할 수 있습니다. `myapp.service` 파일에 다음과 같이 내용을 작성합니다.

```ini
[Unit]
Description=My Node.js app

[Service]
ExecStart=/usr/bin/npm start
WorkingDirectory=/path/to/myapp
Restart=always
User=myuser
Group=myuser

[Install]
WantedBy=multi-user.target
```

위 파일에서 `ExecStart`는 실행할 명령어를, `WorkingDirectory`는 작업 디렉토리를, `User`와 `Group`은 프로세스를 실행할 사용자와 그룹을 설정합니다.

`systemd` 서비스 파일을 저장한 후, 다음 명령어를 실행하여 `systemd` 서비스를 등록하고 실행합니다.

```bash
sudo systemctl daemon-reload
sudo systemctl enable myapp.service
sudo systemctl start myapp.service
```

위 명령어에서 `daemon-reload`는 `systemd` 데몬을 다시 로드하는 명령어이며, `enable`은 서비스를 등록하고, `start`는 서비스를 실행하는 명령어입니다.

위와 같이 `&`, `nohup`, `systemd` 등을 사용하여 npm 프로세스를백그라운드에서 실행할 수 있습니다. 추가적으로, `screen` 명령어를 사용하여 새로운 세션을 생성하고, npm 프로세스를 백그라운드에서 실행할 수도 있습니다.

4. `screen`을 사용하여 백그라운드 실행하기

`screen` 명령어를 사용하여 새로운 세션을 생성하고, npm 프로세스를 백그라운드에서 실행할 수 있습니다.

```bash
screen -S myapp
npm start
```

위 명령어에서 `-S`는 새로운 세션 이름을 설정하는 옵션입니다. `npm start` 명령어를 실행하면 npm 프로세스가 새로운 세션에서 실행됩니다. 이후, `CTRL + A`, `CTRL + D` 키를 눌러 세션을 종료합니다.

이와 같이, `&`, `nohup`, `systemd`, `screen` 등을 사용하여 npm 프로세스를 백그라운드에서 실행할 수 있습니다.

반응형