Sederhana / Hal yang dapat digunakan terlebih dahulu
Jika Anda menginginkan skrip awal tanpa banyak usaha (yaitu berurusan dengan proses, cukup dikelola oleh sistem), Anda dapat membuat systemd
melayani. Lihat jawaban Greg untuk deskripsi terperinci tentang cara melakukannya. Setelah itu Anda dapat memulai layanan dengan
systemctl start myserver
Sebelumnya saya akan merekomendasikan mencoba xinetd
atau sesuatu yang serupa untuk perincian yang lebih baik mengenai manajemen sumber daya dan izin tetapi systemd sudah membahasnya.
Menggunakan shell
Anda dapat memulai proses seperti ini:
nohup ./myexecutable &
&
memberi tahu shell untuk memulai perintah di latar belakang, menyimpannya di daftar pekerjaan. Pada beberapa shell, pekerjaan dimatikan jika shell induk keluar menggunakan sinyal HANGUP. Untuk mencegah hal ini, Anda dapat meluncurkan perintah menggunakan nohup
perintah, yang membuang sinyal HANGUP.
Namun, ini tidak berfungsi, jika proses yang dipanggil menghubungkan kembali sinyal HANGUP.
Untuk benar-benar yakin, Anda perlu menghapus proses dari daftar tugas shell. Untuk dua shell terkenal, hal ini dapat dilakukan sebagai berikut:
bash:
./myexecutable &
disown <pid>
zsh:
./myexecutable &!
Membunuh pekerjaan latar belakang Anda
Biasanya, shell mencetak PID dari proses tersebut, yang kemudian dapat dimatikan menggunakan kill
perintah, untuk menghentikan server. Jika shell Anda tidak mencetak PID, Anda bisa mendapatkannya menggunakan
echo $!
langsung setelah eksekusi. Ini mencetak PID dari proses bercabang.
Anda dapat menggunakan Supervisord untuk mengelola proses Anda.