GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menjalankan server web Golang saya di latar belakang?

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.


Linux
  1. Ssh – Bagaimana Cara Membuat Proses yang Saya Mulai Selama Sesi Ssh Berjalan Setelah Sesi Berakhir??

  2. Linux – Bagaimana Mendapatkan Waktu Jam Dinding Dari Proses Yang Berjalan?

  3. Bagaimana Memulai Banjir di Latar Belakang?

  1. Cara mengubah nama host di server web cPanel

  2. Bagaimana menjalankan proses Rsync di latar belakang

  3. Bagaimana cara mendapatkan ID proses dari proses latar belakang?

  1. Bagaimana menjalankan Node.js sebagai proses latar belakang dan tidak pernah mati?

  2. Bagaimana cara mendapatkan ID proses untuk mematikan proses nohup?

  3. Bagaimana agar hanya pengguna, pid dan perintah yang dijalankan untuk proses tertentu? (Ubuntu 11.10)