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.
crontab
Metode 1: Menggunakan Ini adalah cara yang sederhana untuk menjalankan script saat sistem booting.
-
Buka Crontab:
crontab -e
-
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. -
Simpan dan Keluar:
- Setelah menambahkan baris tersebut, simpan dan keluar dari editor.
Dengan ini, script akan otomatis dijalankan setiap kali sistem melakukan booting.
systemd
Metode 2: Menggunakan Jika kamu ingin kontrol lebih baik atas proses yang dijalankan pada saat startup, kamu bisa membuat service dengan systemd
.
-
Buat File Service:
Buat file service di
/etc/systemd/system/
dengan namadownload-torrent.service
:sudo nano /etc/systemd/system/download-torrent.service
-
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
danyour-group
dengan nama user dan grup kamu di sistem.
-
Reload systemd Daemon:
Setelah menyimpan file service, reload daemon systemd untuk mengenali service baru:
sudo systemctl daemon-reload
-
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
-
[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.
- Description: Deskripsi singkat tentang apa yang dilakukan oleh unit ini. Dalam hal ini,
-
[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.
- ExecStart: Menentukan perintah atau skrip yang harus dijalankan ketika layanan dimulai. Dalam hal ini,
-
[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.
- WantedBy: Menentukan target atau runlevel yang membuat unit ini aktif saat sistem booting.
Penggunaan Unit File
-
Membuat dan Mengedit Unit File:
- Tempatkan unit file di direktori
/etc/systemd/system/
dengan nama yang sesuai (misalnyamyservice.service
).
sudo nano /etc/systemd/system/myservice.service
- Tempelkan konfigurasi unit file ke dalam editor, lalu simpan dan keluar.
- Tempatkan unit file di direktori
-
Muat Ulang Konfigurasi systemd:
Setelah membuat atau mengedit unit file, muat ulang konfigurasi systemd:
sudo systemctl daemon-reload
-
Aktifkan Unit:
Agar unit diaktifkan dan dimulai saat boot, gunakan perintah:
sudo systemctl enable myservice.service
-
Mulai Unit:
Untuk memulai unit segera tanpa reboot:
sudo systemctl start myservice.service
-
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.