Rp0

Tidak ada produk di keranjang.

BELANJA PRODUK DIGITAL

admin@boimeningkat.com

+62 85276661500

Rp0

Tidak ada produk di keranjang.

Cara Menjalankan Bash Script Saat Booting Linux (Autostart) Menggunakan systemd Terbaru

ARTIKEL POPULER

- Advertisement -

Cara Menjalankan Bash Script Saat Booting Linux (Autostart) dengan systemd: Panduan Lengkap

Menjalankan bash script secara otomatis saat Linux booting adalah salah satu skill dasar yang wajib dikuasai oleh siapa pun yang belajar Linux System Administration, DevOps, atau pengelolaan server. Pada kondisi nyata di lapangan, banyak kebutuhan yang mengharuskan sebuah skrip berjalan otomatis tanpa perlu dieksekusi manual setelah login.

Contoh kebutuhan paling umum adalah menjalankan skrip backup, sinkronisasi file, mounting network storage, memulai service aplikasi custom, melakukan health-check, menjalankan bot monitoring, atau menyalakan proses worker tertentu di server.

READ  Cara Backup WordPress dengan Plugin, cPanel, dan FTP, Mudah!
Cara Menjalankan Bash Script Saat Booting Linux (Autostart) Menggunakan systemd Terbaru
Cara Menjalankan Bash Script Saat Booting Linux (Autostart) Menggunakan systemd Terbaru

Di Linux modern, metode terbaik dan paling direkomendasikan untuk autostart script adalah menggunakan systemd. Hampir semua distro Linux populer saat ini—seperti Ubuntu, Debian, CentOS Stream, Rocky Linux, AlmaLinux, Fedora, hingga Arch Linux—menggunakan systemd sebagai init system dan service manager.

Artikel ini akan membahas cara menjalankan bash script saat booting Linux dengan benar menggunakan systemd, termasuk pembuatan service file, konfigurasi permission, debugging, dan best practice agar skrip stabil berjalan di background.


Kenapa Harus systemd untuk Autostart Script?

Banyak pemula mencoba menjalankan skrip autostart melalui cara lama seperti /etc/rc.local, cron @reboot, atau menaruh perintah di .bashrc. Walaupun beberapa cara tersebut bisa bekerja, systemd tetap unggul karena:

  1. Lebih stabil dan standar di Linux modern
  2. Mudah dimonitor dan dikontrol (start, stop, restart, status)
  3. Bisa dibuat dependency (misalnya tunggu network online dulu)
  4. Memiliki logging otomatis melalui journalctl
  5. Bisa restart otomatis jika script crash

Jika tujuan Anda adalah menjalankan bash script untuk kebutuhan server dan produksi, systemd adalah metode yang paling aman dan profesional.


Persiapan: Pastikan Script Bisa Jalan Manual

Sebelum membuat service systemd, langkah pertama adalah memastikan skrip Anda benar-benar bisa dieksekusi manual.

Misalnya Anda punya file script bernama:

sync.sh

Idealnya script disimpan di lokasi yang “rapi” dan standar seperti:

  • /usr/local/bin/
  • /opt/scripts/
  • /home/user/scripts/ (untuk testing)

Contoh lokasi yang disarankan:

sudo nano /usr/local/bin/sync.sh

Isi contoh script sederhana:

#!/bin/bash
echo "Sync service started at $(date)" >> /var/log/sync.log

Setelah itu beri permission executable:

sudo chmod +x /usr/local/bin/sync.sh

Lalu uji jalankan:

sudo /usr/local/bin/sync.sh

Jika file log muncul, berarti script sudah valid.


Cara Menjalankan Bash Script Saat Booting Linux Menggunakan systemd

Untuk membuat script berjalan otomatis saat booting, Anda perlu membuat systemd service file.

READ  Cara Submit URL Website ke Google, Bing, Yandex, dan Yahoo Terbaru 2025

Lokasi service file bisa di:

  • /etc/systemd/system/ → untuk service custom buatan user/admin (paling disarankan)
  • /lib/systemd/system/ → biasanya untuk service bawaan paket distro

Untuk kebutuhan Anda, gunakan:

/etc/systemd/system/


1) Membuat File Service systemd

Misalnya Anda ingin service bernama:

sync.service

Buat file:

sudo nano /etc/systemd/system/sync.service

Isi service file dasar:

[Unit]
Description=My Shell Script for Sync
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/sync.sh

[Install]
WantedBy=multi-user.target

Penjelasan Isi systemd Service File (Supaya Tidak Asal Copy-Paste)

Bagian [Unit]

  • Description=
    Nama deskripsi service (bebas).
  • After=network.target
    Menandakan service baru dijalankan setelah target network dimulai.
    Ini penting kalau script Anda butuh internet atau akses jaringan.

Jika script Anda butuh network benar-benar aktif (misalnya ping, curl, akses NFS), lebih aman gunakan:

After=network-online.target
Wants=network-online.target

Bagian [Service]

  • Type=simple
    Artinya service dianggap berjalan selama proses ExecStart masih aktif.
  • ExecStart=
    Menunjukkan file script yang dieksekusi saat service dimulai.

Catatan penting:
Pastikan path script benar dan script memiliki shebang #!/bin/bash.


Bagian [Install]

  • WantedBy=multi-user.target
    Artinya service akan dijalankan saat Linux masuk mode multi-user (mode server normal).

2) Reload systemd Agar Service Baru Terdeteksi

Setelah membuat file service, jalankan:

sudo systemctl daemon-reload

Ini wajib, karena systemd tidak otomatis membaca file baru tanpa reload.


3) Mengaktifkan Service Agar Autostart Saat Booting

Gunakan perintah:

sudo systemctl enable sync.service

Perintah ini akan membuat symbolic link agar service dijalankan otomatis saat boot.


4) Menjalankan Service Tanpa Perlu Restart Server

Agar service langsung aktif sekarang juga:

sudo systemctl start sync.service

5) Mengecek Status Service

Untuk memastikan service berjalan:

sudo systemctl status sync.service

Jika berhasil, Anda akan melihat status seperti:

  • active (running)
  • loaded
  • enabled

Cara Melihat Log Service systemd (Sangat Penting untuk Troubleshooting)

Salah satu keunggulan systemd adalah logging terpusat. Anda bisa membaca log service dengan:

journalctl -u sync.service

Jika ingin melihat log real-time:

journalctl -u sync.service -f

Ini sangat berguna ketika script Anda error saat booting.

READ  Apa Itu Robots.txt? Panduan Lengkap dan Cara Mengatasi Masalah Crawling

Best Practice: Script Jalan Terus (Daemon Mode) atau Sekali Jalan?

Ada dua tipe kebutuhan autostart:

1) Script dijalankan sekali saat boot

Contoh: mounting disk, setting iptables, menyalakan konfigurasi.

Untuk tipe ini, Anda bisa gunakan:

Type=oneshot
RemainAfterExit=yes

Contoh:

[Service]
Type=oneshot
ExecStart=/usr/local/bin/sync.sh
RemainAfterExit=yes

2) Script berjalan terus menerus (background process)

Contoh: monitoring loop, worker, bot, listener.

Untuk tipe ini, Anda perlu memastikan script tidak selesai lalu exit.

Contoh script loop:

#!/bin/bash
while true; do
  echo "Service running at $(date)" >> /var/log/sync.log
  sleep 10
done

Membuat Service Auto-Restart Jika Script Crash

Di lingkungan server, script bisa berhenti karena error. Untuk itu, tambahkan konfigurasi restart otomatis:

[Service]
Type=simple
ExecStart=/usr/local/bin/sync.sh
Restart=always
RestartSec=3

Artinya jika script exit, systemd akan menjalankannya lagi setelah 3 detik.


Menjalankan Script Sebagai User Tertentu (Bukan Root)

Secara default, systemd menjalankan service sebagai root jika service dibuat di /etc/systemd/system/.

Jika Anda ingin menjalankan script sebagai user tertentu, tambahkan:

User=ubuntu
Group=ubuntu

Contoh:

[Service]
Type=simple
User=ubuntu
Group=ubuntu
ExecStart=/usr/local/bin/sync.sh
Restart=always
RestartSec=3

Ini penting untuk keamanan, terutama jika script Anda tidak membutuhkan akses root.


Menentukan Working Directory (Lokasi Kerja Script)

Kadang script gagal karena ia mengakses file relatif, misalnya:

./data.txt

Saat dijalankan oleh systemd, working directory default bukan folder script. Untuk mengatasinya:

WorkingDirectory=/usr/local/bin

Mengatur Environment Variable di Service

Jika script Anda butuh environment variable seperti API_KEY atau PATH khusus, tambahkan:

Environment="API_KEY=xxxxxx"
Environment="MODE=production"

Atau gunakan file environment:

EnvironmentFile=/etc/default/sync

Contoh Service systemd yang Lebih Lengkap (Rekomendasi)

Berikut contoh yang lebih “siap produksi”:

[Unit]
Description=Sync Script Service
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
ExecStart=/usr/local/bin/sync.sh
Restart=always
RestartSec=5
User=root
WorkingDirectory=/usr/local/bin
StandardOutput=append:/var/log/sync-service.log
StandardError=append:/var/log/sync-service-error.log

[Install]
WantedBy=multi-user.target

Cara Menghentikan dan Menonaktifkan Autostart

Jika Anda ingin menghentikan service:

sudo systemctl stop sync.service

Jika ingin menonaktifkan autostart:

sudo systemctl disable sync.service

Jika ingin menghapus total:

  1. Hapus file service: sudo rm /etc/systemd/system/sync.service
  2. Reload systemd: sudo systemctl daemon-reload

Penyebab Umum Script Tidak Jalan Saat Booting

Berikut masalah yang paling sering terjadi:

1) Script belum executable

Solusi:

sudo chmod +x /usr/local/bin/sync.sh

2) Path script salah

Pastikan ExecStart= menggunakan path absolut.

3) Script butuh network tapi service jalan terlalu cepat

Solusi:
Gunakan network-online.target.

4) Script butuh permission root

Solusi:
Jalankan sebagai root atau atur permission file.

5) Script butuh bash tapi shebang salah

Gunakan:

#!/bin/bash

6) Script bergantung pada PATH

Solusi:
Gunakan path absolut untuk semua command dalam script.

Misalnya:

  • /usr/bin/curl
  • /usr/bin/python3
  • /bin/mkdir

Kesimpulan

Cara Menjalankan Bash Script Saat Booting Linux (Autostart) Menggunakan systemd Terbaru
Cara Menjalankan Bash Script Saat Booting Linux (Autostart) Menggunakan systemd Terbaru

Menjalankan bash script saat booting Linux (autostart) adalah kebutuhan umum dalam administrasi server. Metode terbaik dan paling direkomendasikan di Linux modern adalah menggunakan systemd dengan membuat service file di /etc/systemd/system/.

Dengan systemd, Anda bisa mengontrol script seperti service profesional: bisa start/stop, auto-restart, logging rapi, dependency network, dan menjalankan script sebagai user tertentu. Ini jauh lebih aman dan stabil dibanding metode lama seperti rc.local atau cron @reboot.

Jika Anda ingin membangun sistem Linux yang serius—baik untuk server produksi, VPS, maupun lab otomasi—maka memahami systemd adalah investasi skill yang sangat besar.

TINGGALKAN KOMENTAR

Silakan masukkan komentar anda!
Silakan masukkan nama Anda di sini

- Advertisement -

ARTIKEL TERBARU