cara menjalankan file .sh secara otomatis setiap kali PC dinyalakan (saat booting) - wongganteng10/tutorial GitHub Wiki

Untuk menjalankan file .sh secara otomatis setiap kali PC dinyalakan (saat booting), kamu bisa menambahkan script tersebut ke crontab dengan opsi @reboot atau menggunakan systemd untuk menjalankan script sebagai service.

Metode 1: Menggunakan crontab

Ini adalah cara yang sederhana untuk menjalankan script saat sistem booting.

  1. Buka Crontab:

    crontab -e
    
  2. Tambahkan Baris Berikut:

    Tambahkan baris berikut di akhir file crontab:

    @reboot /path/to/download_torrent.sh
    

    Gantilah /path/to/download_torrent.sh dengan path lengkap ke script .sh yang sudah kamu buat sebelumnya.

  3. Simpan dan Keluar:

    • Setelah menambahkan baris tersebut, simpan dan keluar dari editor.

Dengan ini, script akan otomatis dijalankan setiap kali sistem melakukan booting.

Metode 2: Menggunakan systemd

Jika kamu ingin kontrol lebih baik atas proses yang dijalankan pada saat startup, kamu bisa membuat service dengan systemd.

  1. Buat File Service:

    Buat file service di /etc/systemd/system/ dengan nama download-torrent.service:

    sudo nano /etc/systemd/system/download-torrent.service
    
  2. Tambahkan Konfigurasi Service:

    Isi file tersebut dengan konfigurasi berikut:

    [Unit]
    Description=Torrent Download Service
    After=network.target
    
    [Service]
    ExecStart=/path/to/download_torrent.sh
    WorkingDirectory=/path/to/your/download/directory
    User=your-username
    Group=your-group
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    

    Gantilah:

    • /path/to/download_torrent.sh dengan path lengkap ke script .sh yang kamu buat.
    • /path/to/your/download/directory dengan direktori tempat file akan didownload.
    • your-username dan your-group dengan nama user dan grup kamu di sistem.
  3. Reload systemd Daemon:

    Setelah menyimpan file service, reload daemon systemd untuk mengenali service baru:

    sudo systemctl daemon-reload
    
  4. Enable dan Start Service:

    Aktifkan service agar otomatis berjalan saat boot:

    sudo systemctl enable download-torrent.service
    

    Kamu juga bisa langsung menjalankannya tanpa harus reboot:

    sudo systemctl start download-torrent.service
    

Dengan setup ini, script kamu akan berjalan secara otomatis setiap kali PC dinyalakan, dan jika ada masalah seperti PC mati mendadak, download torrent akan dilanjutkan ketika PC kembali hidup.




File yang kamu lihat adalah sebuah unit file systemd. Unit file ini digunakan untuk mendefinisikan dan mengelola layanan (services) atau proses yang dijalankan oleh systemd. Mari kita uraikan bagian-bagian dari unit file tersebut:

Struktur Unit File Systemd

  1. [Unit]

    Bagian ini berisi deskripsi dan dependensi dari unit.

    [Unit]
    Description=My Custom Script
    
    • Description: Deskripsi singkat tentang apa yang dilakukan oleh unit ini. Dalam hal ini, My Custom Script adalah deskripsi dari skrip yang akan dijalankan.
  2. [Service]

    Bagian ini mendefinisikan bagaimana unit layanan berfungsi. Ini termasuk konfigurasi tentang bagaimana dan kapan proses tersebut harus dijalankan.

    [Service]
    ExecStart=/etc/rc.d/download_torrent.sh
    Restart=on-failure
    
    • ExecStart: Menentukan perintah atau skrip yang harus dijalankan ketika layanan dimulai. Dalam hal ini, /etc/rc.d/download_torrent.sh adalah skrip yang akan dieksekusi.
    • Restart: Menentukan kebijakan restart layanan. on-failure berarti systemd akan mencoba untuk me-restart layanan jika proses tersebut gagal atau keluar dengan status tidak sukses.
  3. [Install]

    Bagian ini berisi informasi tentang bagaimana dan kapan unit harus diaktifkan atau diinstal.

    [Install]
    WantedBy=multi-user.target
    
    • WantedBy: Menentukan target atau runlevel yang membuat unit ini aktif saat sistem booting. multi-user.target adalah salah satu target standar yang berarti unit ini akan diaktifkan selama proses boot ketika sistem mencapai level multi-user, yaitu mode standar yang memiliki akses ke beberapa pengguna dan jaringan.

Penggunaan Unit File

  1. Membuat dan Mengedit Unit File:

    • Tempatkan unit file di direktori /etc/systemd/system/ dengan nama yang sesuai (misalnya myservice.service).
    sudo nano /etc/systemd/system/myservice.service
    
    • Tempelkan konfigurasi unit file ke dalam editor, lalu simpan dan keluar.
  2. Muat Ulang Konfigurasi systemd:

    Setelah membuat atau mengedit unit file, muat ulang konfigurasi systemd:

    sudo systemctl daemon-reload
    
  3. Aktifkan Unit:

    Agar unit diaktifkan dan dimulai saat boot, gunakan perintah:

    sudo systemctl enable myservice.service
    
  4. Mulai Unit:

    Untuk memulai unit segera tanpa reboot:

    sudo systemctl start myservice.service
    
  5. Cek Status Unit:

    Kamu bisa memeriksa status unit dengan:

    sudo systemctl status myservice.service
    

Dengan unit file ini, skrip kamu akan dijalankan secara otomatis sesuai konfigurasi yang telah ditentukan dan akan dikelola dengan baik oleh systemd.