Pilih solusi
Agar perintah tetap berjalan setelah sesi SSH Anda terputus, pilih salah satu solusi berikut:
Solusi 1: Gunakan perintah nohup dan &: Cocok untuk menjalankan skrip atau perintah otomatis yang bersifat sekali jalan dan tidak interaktif.
Solusi 2: Gunakan GNU screen: Cocok untuk task interaktif jangka panjang yang mungkin memerlukan debugging atau dilanjutkan di kemudian hari.
Solusi 1: Gunakan perintah nohup dan &
Perintah nohup memungkinkan proses terus berjalan setelah Anda menutup terminal, dan simbol & mengirim proses ke latar belakang.
Jalankan perintah di latar belakang.
Perintah ini mengarahkan output dan error ke
[log_file_anda].sudo nohup [perintah_anda] >[log_file_anda] 2>&1 &Sebagai contoh, untuk menjalankan
bash hello.shdi latar belakang dan menulis output ke file baruoutput.logdi direktori saat ini, jalankan perintah berikut:sudo nohup bash hello.sh > output.log 2>&1 &.Lihat output perintah.
sudo tail -f [log_file_anda]Hentikan proses.
PentingMenghentikan proses akan mengakhiri perintah atau task tersebut. Lanjutkan dengan hati-hati.
Temukan Process ID (PID). Ganti
[perintah_anda]dengan perintah yang Anda jalankan di Langkah 1.sudo ps aux | grep "[perintah_anda]"Sebagai contoh, jika Anda menjalankan
sudo nohup bash hello.sh > output.log 2>&1 &, cari PID-nya dengansudo ps aux | grep "bash hello.sh".Gunakan perintah
sudo kill [PID]untuk menghentikan proses.
Solusi 2: Gunakan GNU screen
Instal GNU screen.
Untuk Alibaba Cloud Linux dan CentOS
sudo yum install -y screenUntuk Debian dan Ubuntu
sudo apt-get install -y screen
Buat dan masuk ke sesi baru.
[Nama]adalah nama kustom untuk sesi Anda.screen -S [Nama]Sebagai contoh, untuk membuat sesi bernama
mysession, jalankansudo screen -S mysession.Jalankan task Anda di sesi tersebut.
Lepaskan sesi.
Tekan
Ctrl+A+Duntuk melepaskan sesiscreensaat ini.Lanjutkan sesi.
Tampilkan daftar sesi screen yang tersedia untuk menemukan session PID target.
sudo screen -lsThere is a screen on: 2046.mytask (Detached) 1 Socket di /run/screen/S-root.Dalam contoh ini, session PID adalah
2046.Lanjutkan sesi.
Ganti
[PID]dengan session PID dari langkah sebelumnya.sudo screen -r -d [PID]Sebagai contoh, untuk melanjutkan sesi dengan PID 2046, jalankan
sudo screen -r -d 2046.
Hentikan sesi.
PentingMenghentikan sesi juga akan mengakhiri semua task dan perintah yang sedang berjalan di dalamnya. Lanjutkan dengan hati-hati.
Ganti
[PID]dengan session PID.sudo kill [PID]