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
PHPzasal
2023-04-06 08:59:051180semak imbas

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 &

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
  • 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 #日志路径

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

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

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

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
  • Cipta sesi skrin baharu

Masukkan arahan berikut dalam terminal untuk mencipta sesi skrin baharu:

$ screen -S myprogram

Di mana, myprogram ialah nama sesi.

  • Jalankan program

Jalankan program dalam sesi skrin:

$ /path/to/myprogram
  • 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

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:
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