GNU/Linux >> Belajar Linux >  >> Debian

Cara menjalankan skrip saat boot di Debian 11

Boot up dalam istilah sederhana mengacu pada waktu dari power on ke waktu pengguna mulai. Ini dicapai dengan menggunakan skrip boot yang berisi instruksi tentang kode mana yang akan dimuat dan proses serta aplikasi mana yang akan dimulai.

Ada beberapa tahap startup Linux (sebelum boot ke systemd atau System V init dan sebelum lingkungan desktop dimuat), dan Anda dapat mengonfigurasi skrip atau program autostart Anda sendiri pada tahap tertentu yang dapat berupa perintah tunggal atau lebih tepatnya a serangkaian perintah atau skrip shell yang dapat dieksekusi. Namun demikian, perlu diperhatikan bahwa mungkin ada beberapa perbedaan dalam prosedur startup antara berbagai distro dan versi Linux.

Versi modern Linux pertama kali akan boot ke systemd sementara versi yang lebih lama menggunakan System V init . Kedua metode akan menjalankan cron dan rc.local sebelum lingkungan desktop seperti KDE atau GNOME dimuat. Di sisi lain, distro Linux berbasis server menjalankan shell default, misalnya, Bash, setelah pengguna masuk di konsol alih-alih memuat lingkungan desktop.

Untuk menambahkan layanan dan skrip dengan tepat saat startup di Debian 11, Anda perlu membuat unit Systemd. Panduan ini akan fokus pada tiga metode untuk menambahkan skrip saat startup di mesin Debian 11 Anda:

  1. Menggunakan systemd
  2. Menggunakan cron
  3. Menggunakan rc.local

Mari kita mulai.

Apa itu unit systemd?

Unit systemd adalah file konfigurasi yang mencakup informasi untuk manajemen yang sesuai atau eksekusi file sistem tertentu. Dalam systemd, unit menunjukkan sumber daya apa pun yang diketahui sistem bagaimana cara mengoperasikan dan mengelolanya. Unit sistem biasanya digunakan untuk memulai, menghentikan, mengelola layanan, mengatur proses boot, memelihara tugas dan proses, membuat soket, titik automount, menukar file atau partisi, memasang sistem file, dan menginisialisasi perangkat keras.

Unit systemd diposisikan di bawah direktori /etc/systemd/system. Setiap skrip yang ingin Anda jalankan saat boot menggunakan unit Systemd harus ditunjukkan dalam file (unit) di bawah direktori yang disebutkan di atas.

Untuk menyederhanakan hubungan antara systemd dan unit Lebih baik, pertimbangkan systemd sebagai pelatih tim kemudian unit sebagai fasilitas dan kebutuhan dalam tim, misalnya, bola, jagung, gym, arena bermain, peralatan bermain, dan lain-lain. Jadi, untuk membuat  pelatih mengelola tim agar berkinerja lebih baik, mereka menggunakan peralatan yang tersedia untuk meningkatkan tim secara mendalam. Demikian pula, systemd menggunakan unit untuk mengontrol dan mengelola proses dan layanan sistem.

Beberapa jenis Unit Systemd meliputi:
  • Target – Kumpulan unit yang menggambarkan titik sinkronisasi. Titik sinkronisasi digunakan saat boot untuk menjalankan sistem dalam status tertentu.
  • Gunung – Unit semacam ini mengontrol titik pemasangan sistem file.
  • Perangkat – Unit jenis ini menggerakkan aktivasi berbasis perangkat seperti driver perangkat.
  • Soket – Jenis unit ini mengaktifkan layanan saat layanan mendapatkan lalu lintas masuk pada soket pendengar.
  • Jalur – Jenis unit ini memonitor file/direktori kemudian mengaktifkan/menonaktifkan layanan jika file atau direktori yang disebutkan diambil.
  • Pengatur Waktu – Jenis unit ini melakukan aktivasi dan penonaktifan layanan tertentu berdasarkan timer atau saat waktu yang ditetapkan telah berlalu.
  • Cakupan – Unit yang mensistematisasikan dan mengelola proses asing.

Mencantumkan unit systemd

Di bawah ini adalah tampilan singkat dari unit systemd yang ada di sistem kami menggunakan ls perintah.

ls /etc/systemd/system

Salah satu file yang dikecualikan dalam snapshot di atas adalah Tomcat.service, yang isinya seperti yang ditampilkan oleh gambar berikut.

Untuk membiasakan diri dengan file konfigurasi unit di snapshot di atas, lihat info detail berikut. Jangan khawatir tentang mereka karena unit yang akan Anda buat untuk menjalankan skrip Anda akan sedikit lebih sederhana.

Unit directives meliputi;
  • Deskripsi: Arahan ini biasanya mengizinkan Anda untuk menambahkan deskripsi untuk sebuah unit; di sini, Anda dapat mengatur nama unit untuk dikenali.
  • Ingin: Dependensi unit biasanya ditentukan di sini. Poin yang perlu diperhatikan adalah bahwa ada berbagai arahan untuk tujuan serupa ini. Misalnya, direktif Memerlukan menetapkan ketergantungan yang ketat, yang tanpanya unit tidak dapat berfungsi. Berlawanan dengan Requires, Wants digunakan dalam menentukan dependensi yang tanpanya unit dapat tetap beroperasi.
  • Setelah: Unit saat ini akan dimulai setelah unit yang ditunjuk dalam arahan ini.
Arahan bagian [Layanan]:

  • Jenis: forking menunjukkan layanan harus dimatikan sambil menjaga proses anak yang harus diberi Identifikasi Proses (PID).
  • Lingkungan: Di sini, seseorang dapat menentukan variabel lingkungan unit.
  • ExecStart: Arahan ini memungkinkan Anda untuk menentukan jalur dan perintah yang ingin Anda jalankan.
  • ExecStop: Anda dapat menyatakan perintah yang digunakan untuk menghentikan unit.
  • SuccessExitStatus: Arahan ini memungkinkan Anda untuk menghitung status dan sinyal keluar.
  • Pengguna: Anda dapat mengidentifikasi pengguna pemilik unit.
  • Grup: Anda dapat menghitung pemilik grup unit.
  • UMask: Anda dapat menentukan topeng pengguna.
  • Mulai Ulang: Jika unit memulai ulang secara spontan, Anda dapat menentukan waktu menunggu untuk mem-boot ulang layanan.
  • Mulai ulang: Anda dapat menguraikan Systemd kapan unit harus di-restart. Opsi yang dapat diakses selalu on-watchdog, on-failure, on-abnormal, on-success, dan on-abort.

Direktif [Install] dalam contoh di atas adalah WantedBy.

  • Dicari Oleh: Arahan ini memungkinkan Anda untuk menguraikan unit sebagai ketergantungan; itu mirip dengan Keinginan direktif, tetapi untuk menunjukkan apakah unit saat ini dianggap sebagai ketergantungan oleh unit lain.

Arahan biasa lainnya di bagian [Unit] yang tidak dimasukkan dalam tangkapan layar sebelumnya:

  • Memerlukan: Dalam arahan ini, Anda dapat menetapkan dependensi untuk mencegah kegagalan boot. Menentang Keinginan direktif, jika dependensi yang ditunjuk dengan direktif Requires tidak terpenuhi, unit tidak akan berfungsi.

Di bagian [Layanan]:

  • FilePID: Arahan forking memerlukan arahan PIDFile, yang memiliki jalur ke file PID dari proses anak agar Systemd dapat mendeteksinya.
  • StartLimitInterval: menentukan bahwa unit memiliki waktu 60 detik untuk 10 kali mencoba memulai ulang setelah gagal.
  • StartLimitBurst: Arahan ini menunjukkan batas upaya, pada contoh sebelumnya, sepuluh upaya dalam 60 detik.

Anda dapat mengunjungi tautan ini untuk info lebih lanjut tentang unit Systemd.

Jalankan skrip saat boot di Debian 11

Metode 1:Menggunakan unit systemd untuk menjalankan skrip saat boot

Menjalankan skrip saat boot mungkin mudah dan memiliki konfigurasi yang lebih sedikit daripada file Tomcat.service yang sebelumnya kami gunakan untuk menampilkan konten umum unit.

File (unit) yang memiliki info tentang skrip yang berjalan saat boot ditempatkan di /etc/systemd/system. Untuk mengekspresikan skrip untuk dijalankan saat boot, Anda harus membuat unit baru untuk skrip ini. Dengan demikian, Anda dapat menggunakan editor apa pun untuk tujuan pembuatan. Namun, dalam contoh kami, kami akan menggunakan editor nano, di mana kami akan membuat unit bernama script.service. Perhatikan bahwa nama ini dapat diubah ke preferensi Anda untuk mengidentifikasi skrip Anda dengan mudah.

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

Setelah itu, salin dan tempel kode berikut ke dalam file yang Anda buat di bawah /etc/systemd/system.

 dengan jalur ke skrip Anda.[Unit]Description=Nama Skrip Anda di siniAfter=default.target[Service]ExecStart=/PATH/TO/Script.sh[Install]  

Setelah itu, jangan lupa untuk mengganti dengan nama script Anda dan dengan path ke script Anda seperti gambar di bawah ini:

Setelah menyalin data ke dalam file di bawah /etc/systemd/system/, Anda harus mengaktifkannya melalui perintah systemctl yang ditampilkan di bawah ini.

sudo systemctl aktifkan script.service

Catatan: Ingatlah untuk mengganti dengan nama yang sesuai yang Anda tetapkan untuk unit.

Dan booming! Sekarang skrip Anda siap untuk memulai di Debian 11

Metode 2:Cara menjalankan program secara otomatis pada startup Linux melalui Cron

Cron adalah daemon yang digunakan untuk menjalankan perintah terjadwal. Perintah disimpan dalam tabel tugas mahkota atau contrab dan bersifat khusus untuk setiap pengguna dalam sistem. Ini diaktifkan selama boot sistem baik oleh System V init atau systemd, dan Anda dapat menjadwalkan pekerjaan Anda atau sebagai gantinya program untuk dieksekusi tepat selama boot sistem itu sendiri dengan hati-hati melalui langkah-langkah berikut:

Langkah 1: Buka editor contrab default dengan menjalankan perintah berikut:

crontab -e

Jika ini adalah pertama kalinya Anda menjalankan perintah contrab, Anda akan diminta untuk memilih editor seperti yang ditunjukkan oleh potongan kode berikutnya:

$ crontab -eno crontab untuk pengguna - menggunakan yang kosongPilih editor. Untuk mengubah nanti, jalankan 'select-editor'.1. /bin/nano <---- termudah2. /usr/bin/vim.basic3. /bin/edPilih 1-3 [1]:

Setelah memilih sejumlah opsi yang diberikan, contrab akan dibuat untuk Anda dan dieksekusi menggunakan hak istimewa pengguna. Jika Anda memerlukan program untuk dijalankan sebagai pengguna root, jalankan contrab -e sebagai pengguna root itu sendiri

Langkah 2: Tambahkan baris yang dimulai dengan @reboot

# m h dom mon dow command@reboot

Langkah 3: Masukkan perintah pilihan untuk memulai program Anda setelah @ reboot seperti yang ditunjukkan di bawah ini:

@reboot /sbin/ip addr | grep inet\ | ekor -n1 | awk '{ print $2 }'> /etc/issue &&echo "">> /etc/issue

@reboot mendefinisikan tugas yang akan dijalankan selama boot sistem.

Catatan: Pastikan untuk menggunakan jalur lengkap untuk program Anda bila memungkinkan dan tulis perintah Anda dalam satu baris untuk menghindari konflik dengan sistem.

Langkah 4:Simpan file

Setelah menutup editor menggunakan “Ctrl + x” seperti yang ditunjukkan di bawah ini

lalu “Y” untuk menyimpan,

Anda akan melihat perintah yang mengatakan “menginstal contrab baru” di terminal seperti gambar di bawah ini:

Langkah 5:Konfigurasi

Terakhir, Anda dapat menjalankan pemeriksaan untuk mengonfirmasi apakah contrab telah dikonfigurasi dengan benar. Namun, penting untuk dicatat bahwa langkah ini tidak wajib

crontab -l

Dan itu harus dilakukan, teman-teman!

Metode 3:Cara menjalankan program secara otomatis pada startup Linux melalui RC.LOCAL

rc.local hanyalah warisan dari sistem init System V. Ini adalah skrip terakhir yang dijalankan sebelum melanjutkan ke layar login untuk lingkungan desktop atau prompt login di terminal. Ini biasanya skrip shell Bash, dan Anda juga dapat menjalankan apa pun dari skrip tersebut. Gunakan langkah-langkah berikut untuk mengonfigurasi skrip rc.local lokal Anda.

Langkah 1: Pertama, buat file /etc/rc.local jika tidak ada di sistem Anda menggunakan editor pilihan Anda dan sebagai pengguna root. Dalam kasus kami, kami akan menggunakan editor Vi dengan menjalankan perintah berikut:

sudo vi /etc/rc.local

Langkah 2: Tambahkan kode placeholder

Setelah itu, tambahkan kode placeholder berikut ke dalam file

#!/bin/bashexit 0

Itu harus dimulai dengan interpreter (/bin/bash) dan diakhiri dengan kode keluar (0 yang menunjukkan keberhasilan).

Langkah 3: Tambahkan perintah dan logika

Di sini, Anda akan menambahkan perintah dan logika ke file jika diperlukan.

/sbin/ip addr | grep inet\ | ekor -n1 | awk '{ print $2 }'> /etc/issueecho "">> /etc/issue

Lihat sekilas bagaimana hal ini dilakukan dalam cuplikan berikut.

Langkah 4:Simpan dan keluar dari Vi Editor

Untuk menyimpan dan keluar dari file di editor Vim, gunakan “:wq” memerintah. Kami ingin menyimpan file dan keluar dari editor secara bersamaan untuk menjalankan perintah yang membuat file dapat dieksekusi. Dengan demikian, tekan ESC yang akan beralih ke mode normal. Setelah itu, ketik :wq dan tekan “Enter.”

Langkah 5: Jadikan file tersebut dapat dieksekusi

Setelah menyimpan file, kita perlu membuatnya dapat dieksekusi menggunakan perintah berikut:

sudo chmod a+x /etc/rc.local

File tersebut kemudian harus dieksekusi sebagai pengguna root selama boot sistem.

Kesimpulan

Kesimpulannya, menjalankan skrip saat boot di Debian 11 menggunakan Systemd, cron, dan rc.local relatif mudah. Setiap pengguna Linux dapat dengan cepat menyelesaikan tugas ini dengan membuat file sederhana di dalam direktori unit. Artikel ini telah melalui berbagai cara menjalankan skrip pada startup di distro Linux, khususnya Debian.

Masing-masing memiliki kelebihan dan kekurangan, tetapi secara umum, systemd dan cron harus menjadi opsi yang paling disukai. Di sisi lain, Anda juga dapat menggunakan rc.local yang juga kami lihat.


Debian
  1. Debian – Bagaimana Cara Menjalankan Program 32-bit Pada Debian/ubuntu 64-bit?

  2. Bagaimana Menjalankan Skrip??

  3. Bagaimana cara menjalankan skrip dengan systemd tepat sebelum dimatikan?

  1. Cara Menjalankan Skrip Bash {7 Metode}

  2. skrip startup utorrent / jalankan utorrent saat boot – Ubuntu 14.04 / 14.10

  3. Bagaimana cara menjalankan skrip ketika surat tiba di server surat? (Debian)

  1. Cara Menjalankan Debian Sid (Relatif) dengan Aman

  2. Cara dual boot Windows 10 dan Debian 10

  3. Cara Menginstal Java 17 (JDK 17) di Debian 11