Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk menutup terminal di Golang tanpa menjejaskan program berjalan

Bagaimana untuk menutup terminal di Golang tanpa menjejaskan program berjalan

PHPz
Lepaskan: 2023-04-06 10:56:58
asal
1231 orang telah melayarinya

Golang ialah bahasa pengaturcaraan yang sangat popular, terutamanya dalam pengaturcaraan rangkaian dan pengaturcaraan serentak. Walau bagaimanapun, apabila menggunakan Golang untuk membangunkan program, kami mungkin menghadapi masalah menutup program selepas menutup terminal. Artikel ini akan memperkenalkan cara menutup terminal di Golang tanpa menjejaskan perjalanan program.

  1. Dayakan latar belakang menjalankan program

Dalam sistem Linux atau Unix, program Golang boleh dijalankan di latar belakang, supaya atur cara akan terus berjalan selepas ditutup terminal itu. Kaedah pelaksanaan adalah seperti berikut:

Gunakan arahan nohup untuk menjalankan program di latar belakang:

$ nohup ./myprogram &
Salin selepas log masuk

Di mana, myprogram ialah program yang anda ingin jalankan di latar belakang.

  1. Gunakan penyelia open-falcon untuk pengurusan

open-falcon-supervisor ialah alat pengurusan proses Golang sumber terbuka yang boleh memantau, mengurus dan memulakan semula proses. Menggunakan open-falcon-supervisor boleh mencapai kesan bahawa program tidak akan berhenti berjalan selepas menutup terminal. Penggunaan khusus adalah seperti berikut:

  • Pasang open-falcon-supervisor

Masukkan arahan berikut dalam terminal untuk memasang open-falcon-supervisor:

$ curl -Ls http://7xjci3.com1.z0.glb.clouddn.com/tools/supervisor/install.sh | sh
Salin selepas log masuk
  • Konfigurasikan fail supervisord.conf

Buat fail supervisord.conf di bawah direktori /etc dan tambah kandungan berikut di dalamnya:

[program:myprogram]
command=/path/to/myprogram #程序路径
autostart=true
autorestart=true
startretries=10
redirect_stderr=true
stdout_logfile=/path/to/myprogram.log #日志路径
Salin selepas log masuk

Di mana, program saya ialah anda Nama program yang akan dijalankan, /path/to/myprogram ialah laluan program dan /path/to/myprogram.log ialah laluan fail log program.

  • Mulakan penyelia

Masukkan arahan berikut dalam terminal untuk memulakan penyelia:

$ supervisord
Salin selepas log masuk

Dengan cara ini, program diuruskan oleh open- falcon-supervisor akan Berjalan di latar belakang, dan program akan terus berjalan selepas menutup terminal.

  1. Gunakan pengurusan systemd

systemd ialah pengurus sistem dan perkhidmatan di bawah Linux yang boleh memantau, mengurus dan memulakan semula proses. Menggunakan program pengurusan systemd boleh mencapai kesan bahawa program tidak akan berhenti berjalan selepas menutup terminal. Penggunaan khusus adalah seperti berikut:

  • Tulis fail perkhidmatan program

Buat fail myprogram.service di bawah direktori /etc/systemd/system dan tambah kandungan berikut di dalamnya:

[Unit]
Description=My Program Service
After=network.target

[Service]
Type=simple
ExecStart=/path/to/myprogram #程序路径
Restart=on-failure

[Install]
WantedBy=multi-user.target
Salin selepas log masuk

Antaranya, myprogram ialah nama program yang anda ingin jalankan, dan /path/to/myprogram ialah laluan program.

  • Mulakan perkhidmatan

Masukkan arahan berikut dalam terminal untuk memulakan perkhidmatan:

$ systemctl start myprogram
Salin selepas log masuk

Dengan cara ini, program diuruskan oleh systemd akan berjalan di latar belakang Program akan terus berjalan selepas menutup terminal.

  1. Gunakan arahan skrin

Arahan skrin ialah alat pengurusan sesi di bawah Linux Anda boleh mencipta berbilang sesi dan bertukar antara sesi, dan anda juga boleh menjalankan program sesi. Dan letakkan program untuk dijalankan di latar belakang. Gunakan arahan skrin untuk menghalang program daripada berhenti selepas menutup terminal. Penggunaan khusus adalah seperti berikut:

  • Pasang skrin

Masukkan arahan berikut dalam terminal untuk memasang skrin:

$ sudo apt-get install screen
Salin selepas log masuk
  • Cipta sesi skrin baharu

Masukkan arahan berikut dalam terminal untuk mencipta sesi skrin baharu:

$ screen -S myprogram
Salin selepas log masuk

Di mana, myprogram ialah nama sesi.

  • Jalankan program

Jalankan program dalam sesi skrin:

$ /path/to/myprogram
Salin selepas log masuk
  • Letakkan program untuk dijalankan di latar belakang

Dalam sesi skrin, gunakan kekunci pintasan Ctrl + a + d untuk meletakkan program ke latar belakang Program akan terus berjalan selepas menutup terminal.

  • Pulihkan sesi skrin

Masukkan arahan berikut dalam terminal untuk memulihkan sesi skrin yang dibuat sebelum ini:

$ screen -r myprogram
Salin selepas log masuk

Dengan cara ini, gunakan arahan skrin untuk menguruskan program Ia akan berjalan di latar belakang dan program akan terus berjalan selepas menutup terminal.

Ringkasan

Di atas adalah beberapa cara untuk menutup terminal tanpa menjejaskan perjalanan program apabila menggunakan Golang dalam talian. Anda boleh memilih kaedah yang sesuai untuk menguruskan program berdasarkan keperluan dan situasi sebenar anda. Saya harap artikel ini dapat membantu semua orang.

Atas ialah kandungan terperinci Bagaimana untuk menutup terminal di Golang tanpa menjejaskan program berjalan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan