全部产品
Search
文档中心

:Menjaga proses tetap berjalan di Linux setelah koneksi SSH terputus

更新时间:Nov 11, 2025

Pilih solusi

Agar perintah tetap berjalan setelah sesi SSH Anda terputus, pilih salah satu solusi berikut:

Solusi 1: Gunakan perintah nohup dan &

Perintah nohup memungkinkan proses terus berjalan setelah Anda menutup terminal, dan simbol & mengirim proses ke latar belakang.

  1. 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.sh di latar belakang dan menulis output ke file baru output.log di direktori saat ini, jalankan perintah berikut: sudo nohup bash hello.sh > output.log 2>&1 &.
  2. Lihat output perintah.

    sudo tail -f [log_file_anda]
  3. Hentikan proses.

    Penting

    Menghentikan proses akan mengakhiri perintah atau task tersebut. Lanjutkan dengan hati-hati.

    1. 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 dengan sudo ps aux | grep "bash hello.sh".
    2. Gunakan perintah sudo kill [PID] untuk menghentikan proses.

Solusi 2: Gunakan GNU screen

  1. Instal GNU screen.

    • Untuk Alibaba Cloud Linux dan CentOS

      sudo yum install -y screen
    • Untuk Debian dan Ubuntu

      sudo apt-get install -y screen
  2. Buat dan masuk ke sesi baru.

    [Nama] adalah nama kustom untuk sesi Anda.

    screen -S [Nama]
    Sebagai contoh, untuk membuat sesi bernama mysession, jalankan sudo screen -S mysession.
  3. Jalankan task Anda di sesi tersebut.

  4. Lepaskan sesi.

    Tekan Ctrl+A+D untuk melepaskan sesi screen saat ini.

  5. Lanjutkan sesi.

    1. Tampilkan daftar sesi screen yang tersedia untuk menemukan session PID target.

      sudo screen -ls
      There is a screen on:
              2046.mytask     (Detached)
      1 Socket di /run/screen/S-root.

      Dalam contoh ini, session PID adalah 2046.

    2. 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.
  6. Hentikan sesi.

    Penting

    Menghentikan 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]