Node.js Uygulamasını Servis Olarak Eklemek
Published: 2023-07-22 11:35:49

Node.js uygulamasını servis olarak eklemek için genellikle kullanılan yöntem, sistemlerin çalıştığı işletim sistemine bağlıdır. Aşağıda, Windows, Linux ve macOS işletim sistemlerinde Node.js uygulamasını servis olarak nasıl ekleyeceğinizi açıklayan adımlar bulunmaktadır:

**1. Windows için:**

Windows işletim sisteminde Node.js uygulamasını servis olarak eklemek için "nssm" (Non-Sucking Service Manager) adlı ücretsiz bir araç kullanabiliriz.

Adımlar:

1. İlk olarak, Node.js uygulamanızın çalıştığından emin olun ve gerekli bağımlılıkları yükleyin.

2. "nssm" aracını indirin ve yükleyin. (https://nssm.cc/)

3. Komut istemcisini yönetici olarak açın ve aşağıdaki komutu kullanarak servisi oluşturun:

```bash
nssm install <servis-adı> <Node.js-yolu> <Node.js-uygulama-yolu>
```

Örnek:

```bash
nssm install MyNodeApp C:\Program Files\nodejs\node.exe C:\path\to\your\app.js
```

4. Servisi başlatmak için şu komutu kullanın:

```bash
nssm start <servis-adı>
```

5. Servisi durdurmak için şu komutu kullanın:

```bash
nssm stop <servis-adı>
```

**2. Linux için:**

Linux işletim sistemlerinde genellikle `systemd` adlı servis yönetim aracı kullanılır.

Adımlar:

1. Öncelikle, Node.js uygulamanızı çalıştığından emin olun ve gerekli bağımlılıkları yükleyin.

2. Yeni bir servis dosyası oluşturun. Genellikle `my-node-app.service` gibi bir dosya adı kullanılır.

```bash
sudo nano /etc/systemd/system/my-node-app.service
```

3. Aşağıdaki metni servis dosyasına yapıştırın ve uygun şekilde düzenleyin:

```plaintext
[Unit]
Description=My Node.js App
After=network.target

[Service]
User=<kullanıcı-adı>
WorkingDirectory=/path/to/your/app
ExecStart=/usr/bin/node /path/to/your/app.js
Restart=always

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

4. Servisi başlatın:

```bash
sudo systemctl start my-node-app
```

5. Servisi durdurmak için:

```bash
sudo systemctl stop my-node-app
```

6. Servisin otomatik başlatılmasını sağlamak için:

```bash
sudo systemctl enable my-node-app
```

**3. macOS için:**

macOS'ta da `launchd` adlı servis yönetim aracı kullanılır.

Adımlar:

1. Node.js uygulamanızın çalıştığından emin olun ve gerekli bağımlılıkları yükleyin.

2. Bir `.plist` dosyası oluşturun, örneğin `com.my-node-app.plist`.

```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.my-node-app</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/node</string>
        <string>/path/to/your/app.js</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>
```

3. `.plist` dosyasını `~/Library/LaunchAgents/` dizinine taşıyın.

```bash
mv com.my-node-app.plist ~/Library/LaunchAgents/
```

4. Servisi başlatmak için:

```bash
launchctl load ~/Library/LaunchAgents/com.my-node-app.plist
```

5. Servisi durdurmak için:

```bash
launchctl unload ~/Library/LaunchAgents/com.my-node-app.plist
```

Node.js uygulamanızı bu adımları takip ederek servis olarak eklemiş olmalısınız. Her işletim sisteminde servisleri yönetmek için farklı komutlar ve araçlar kullanıldığını unutmayın, bu yüzden uygun araçları seçtiğinizden emin olun.