Jawaban 2016 : hampir setiap distribusi Linux dilengkapi dengan systemd, yang berarti selamanya, monit, PM2, dll. Tidak lagi diperlukan - OS Anda sudah menangani tugas-tugas ini .
Buat myapp.service
file (ganti 'myapp' dengan nama aplikasi Anda, tentu saja):
[Unit]
Description=My app
[Service]
ExecStart=/var/www/myapp/app.js
Restart=always
User=nobody
# Note Debian/Ubuntu uses 'nogroup', RHEL/Fedora uses 'nobody'
Group=nobody
Environment=PATH=/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
WorkingDirectory=/var/www/myapp
[Install]
WantedBy=multi-user.target
Catatan jika Anda baru mengenal Unix: /var/www/myapp/app.js
seharusnya ada #!/usr/bin/env node
di baris pertama.
Salin file layanan Anda ke /etc/systemd/system
folder.
Beri tahu systemd tentang layanan baru dengan systemctl daemon-reload
.
Mulai dengan systemctl start myapp
.
Aktifkan untuk dijalankan saat boot dengan systemctl enable myapp
.
Lihat log dengan journalctl -u myapp
Ini diambil dari Bagaimana kami menggunakan aplikasi simpul di Linux, edisi 2018 , yang juga mencakup perintah untuk menghasilkan AWS / DigitalOcean / Azure CloudConfig untuk membangun Linux / server simpul (termasuk .service
file).