Raspberry Pi adalah SBC (komputer papan tunggal) yang kuat yang dapat Anda gunakan untuk berbagai aplikasi dan proyek. Fleksibilitasnya terletak pada kemampuannya untuk menjalankan semua jenis program, termasuk skrip khusus, sebagian berkat Raspberry Pi OS dan sistem operasi berbasis Linux lainnya yang dijalankannya.

Menjalankan skrip atau program di Raspberry Pi semudah menemukannya di sistem dan menjalankannya. Tetapi bagaimana jika Anda ingin mengotomatiskan proses ini, mungkin karena proyek Anda memerlukannya atau karena Anda ingin menyederhanakan alur kerja Anda?

Satu jawaban untuk ini adalah mempelajari cara menggunakan systemd.

Apa itu Systemd?

systemd adalah rangkaian komponen sistem untuk konfigurasi dan perilaku layanan pada sistem Linux modern. Ini diidentifikasikan dengan a PID (pengidentifikasi proses) dari 1 karena ini adalah proses pertama untuk boot pada saat startup sistem. Secara umum, tujuan systemd adalah untuk membantu Anda mengelola dan menjalankan program saat startup sistem. Dan itulah yang akan Anda manfaatkan untuk meluncurkan program Anda saat startup di Pi.

instagram viewer

Seperti yang disebutkan di awal, ada beberapa metode untuk menjalankan program saat startup di sistem Linux, seperti rc.local, cron, dan autostart. Namun, systemd terjadi pada solusi yang lebih baik dari banyak jika Anda ingin meluncurkan program GUI (antarmuka pengguna grafis), mengotomatiskan aplikasi untuk dijalankan setelah proses sistem tertentu dimulai, atau jalankan program berulang kali hingga penjadwalan Anda bekerja.

Terkait: Bagaimana Menjadwalkan Tugas di Linux Dengan Cron dan Crontab

Cara Menggunakan systemd untuk Meluncurkan Program saat Startup

systemd adalah metode yang sedikit lebih rumit untuk meluncurkan program saat startup di sistem Linux. Namun, fleksibilitas penjadwalan yang ditawarkannya dibandingkan metode lain - yang telah kami sebutkan di atas - benar-benar melebihi kerumitannya dalam setiap aspek.

Metode systemd menggunakan file unit, yang sejenis seperti file .ini yang menyimpan informasi encoding tentang perangkat, layanan, soket, target start-up, dan komponen sistem penting lainnya.

File unit terdiri dari berbagai jenis. Jadi, berdasarkan jenis sumber daya yang ingin Anda deklarasikan, Anda perlu memilih jenis file unit yang sesuai. Untuk tujuan panduan ini, kami akan tetap menggunakan file unit .service, yang memungkinkan Anda mengelola perilaku startup program dan skrip pada sistem.

Di bawah ini adalah rincian langkah-langkah yang terlibat dalam meluncurkan skrip / program saat startup menggunakan systemd.

Membuat Layanan

Untuk mengatur program Anda agar berjalan saat startup, buat file unit layanan yang akan memberi tahu systemd program mana yang harus dijalankan dan kapan. Berikut cara melakukannya.

  1. Di jendela CLI, ketik sudo nano /lib/systemd/system/display.service. Anda dapat menggunakan nama apa pun untuk layanan Anda asalkan diakhiri dengan ekstensi .service.
  2. Di file layanan, tempel baris kode berikut:
    [Satuan]
    Deskripsi = PiCounter
    Setelah = network.target
    [Layanan]
    ExecStart = / usr / bin / python3 /home/pi/PiCounter/display.py
    Mulai ulang = selalu
    Pengguna = pi
    [Install]
    WantedBy = multi-user.target

Semua opsi konfigurasi umum Anda termasuk dalam Satuan dan Install bagian, sedangkan opsi konfigurasi khusus layanan berada di bawah bagian Layanan.

Beberapa pasangan nilai direktif di atas yang mungkin perlu Anda modifikasi meliputi:

saya. Setelah: Ini menentukan kapan harus memulai layanan. Menyetelnya ke network.target memastikan bahwa nilai yang tercantum - network.target dalam kasus ini - dimulai sebelum memulai unit saat ini. Namun, ini tidak mengarahkan hubungan ketergantungan untuk layanan yang akan dipicu; yang dilakukan melalui arahan lain seperti Wants, Requirement, dan WantedBy.

Tentu saja, Anda dapat mengubah nilai ini agar sesuai dengan kebutuhan proyek Anda. Misalnya, jika Anda ingin program Anda dijalankan setelah Raspberry Pi Anda terhubung ke jaringan, Anda dapat menggunakan network-online.target nilai. Anda bisa merujuk ke Dokumentasi Fedora tentang systemd untuk mempelajari lebih lanjut tentang nilai-nilai ini.

ii. ExecStart: Ini memegang jalur absolut dan nama program / skrip yang ingin Anda jalankan saat startup. Jadi tergantung pada apa yang ingin Anda jalankan, Anda perlu menambahkan nilai untuk kedua arahan ini.

aku aku aku. Pengguna: Ini mengidentifikasi nama Raspberry Pi Anda. Jika Anda telah mengubah nama Pi Anda, Anda harus memberikan nilai itu untuk pengguna.

iv. WantedBy: Ini adalah cara paling umum untuk menentukan pemicu untuk sebuah unit. Dengan menyetelnya ke multi-user.target, Anda dapat membuat hubungan ketergantungan yang akan menjalankan program saat kontrol sistem diserahkan ke shell multi-pengguna.

Selain itu, ini juga menjalankan program Anda sebelum sistem X-Windows Pi dimulai, yang berarti program Anda berjalan bahkan sebelum Anda masuk ke sistem. Jika Anda ingin skrip dijalankan sebelum Anda masuk ke Raspberry Pi Anda, ini memungkinkan Anda untuk melakukannya.

Baris kode di atas berfungsi untuk program non-GUI. Namun, jika Anda ingin menjalankan program GUI menggunakan systemd, Anda harus menambahkan kode berikut ke file layanan Anda:

[Satuan]
Deskripsi = PiCounter
Setelah = network.target
[Layanan]
Lingkungan = Tampilan =: 0
Lingkungan = XAUTHORITY / home / pi / .Xauthority
ExecStart = / usr / bin / python3 /home/pi/PiCounter/display.py
Mulai ulang = selalu
[Install]
WantedBy = multi-user.target

Dalam pasangan nilai direktif di atas, yang perlu Anda ubah hanyalah nilai untuk ExecStart pengarahan. Ganti yang ada di blok kode dengan program yang ingin Anda jalankan saat startup. Setelah Anda mengisi file layanan, tekan CTRL + O untuk menyimpannya.

Uji Layanan

Dengan layanan siap, verifikasi secara manual apakah itu berfungsi. Untuk ini, ketik perintah berikut di terminal: sudo systemctl mulai display.service. Layanan harus menjalankan instruksi Anda dengan sukses.

Setelah itu terjadi, akhiri dengan sudo systemctl stop display.service.

Aktifkan Layanan

Jika Anda berhasil menjalankan program Anda dengan sukses menggunakan layanan ini, sekarang saatnya untuk mengaktifkannya sehingga program Anda dijalankan secara otomatis setiap kali Anda mem-boot Raspberry Pi Anda.

Untuk melakukan ini, ketik sudo systemctl mengaktifkan display.service di jendela terminal. Dan setelah selesai, masuk sudo reboot untuk memulai ulang Pi Anda.

Setelah Raspberry Pi Anda boot, systemd harus menjalankan program Anda sesuai instruksi yang Anda berikan.

Mengotomatiskan Peluncuran Program saat Startup di Raspberry Pi

Seperti kebanyakan sistem Linux, Raspberry Pi OS juga memungkinkan Anda menyelesaikan operasi dengan beberapa cara, dan tetap setia pada penjadwalan peluncuran program juga. Jadi, jika Anda ingin meluncurkan program / skrip GUI saat startup dan ingin kontrol yang lebih baik atas penjadwalan Anda, systemd jelas merupakan metode yang lebih baik.

Meskipun demikian, jika Anda menginginkan solusi yang lebih sederhana atau persyaratan proyek Anda menuntut penjadwalan khusus, Anda dapat memeriksa panduan kami untuk Menjalankan Program atau Script Raspberry Pi saat Startup untuk mempelajari lebih lanjut.

Surel
Lembar Cheat Perintah Raspberry Pi Utama

Ingin mendapatkan lebih banyak dari Raspberry Pi Anda? Berikut banyak perintah bermanfaat untuk menavigasi terminal Pi dan memprogram pin GPIO-nya.

Baca Selanjutnya

Topik-topik yang berkaitan
  • DIY
  • Raspberry Pi
Tentang Penulis
Yash Wate (8 Artikel Dipublikasikan)

Yash adalah Penulis Staf di MUO untuk DIY, Linux, Pemrograman, dan Keamanan. Sebelum menemukan minatnya dalam menulis, dia biasa mengembangkan untuk web dan iOS. Anda juga dapat menemukan tulisannya di TechPP, di mana dia meliput vertikal lainnya. Selain teknologi, dia senang berbicara tentang astronomi, Formula 1, dan jam tangan.

Selebihnya Dari Yash Wate

Berlangganan newsletter kami

Bergabunglah dengan buletin kami untuk mendapatkan tip teknologi, ulasan, ebook gratis, dan penawaran eksklusif!

Satu langkah lagi…!

Harap konfirmasi alamat email Anda di email yang baru saja kami kirimkan kepada Anda.

.