Skip to content

emka.web.id

menulis pengetahuan – merekam peradaban

Menu
  • Home
  • Tutorial
  • Makalah
  • Ke-NU-an
  • Kabar
  • Search
Menu

Cara Menjalankan Program Linux Saat Startup dengan systemd

Posted on September 17, 2023January 17, 2024 by syauqi wiryahasana

systemd adalah perangkat lunak yang memungkinkan Anda meluncurkan program Linux saat boot pada sebagian besar distribusi Linux, termasuk Ubuntu. Anda dapat dengan mudah membuat layanan terintegrasi menggunakan systemd, yang dapat dikontrol menggunakan systemctl. systemd memungkinkan program Anda untuk menulis ke jurnal, sehingga lebih mudah untuk melacak dan memantau aktivitas layanan.

Perlu meluncurkan program Linux saat boot? Perangkat lunak systemd menyediakan cara untuk melakukannya di distro Linux mana pun dengan systemd — yang merupakan sebagian besar dari mereka saat ini, termasuk Ubuntu. Kami akan memandu Anda melalui proses pembuatan layanan terintegrasi —dan bahkan membahasnya di jurnal.

Menjalankan Program saat Startup dengan systemd

Terkadang perangkat lunak yang Anda instal di komputer Anda menghubungkan dirinya ke dalam proses startup Linux, sehingga program tersebut secara otomatis diluncurkan setiap kali komputer dinyalakan. Anda dapat dengan mudah mencapai perilaku yang sama dengan program dan skrip Anda sendiri, atau program lain apa pun yang ada di komputer Anda. Ini berguna jika Anda menghosting beberapa jenis server yang ingin Anda jalankan segera setelah mesin dihidupkan (seperti Server Minecraft!), atau jika Anda memiliki perangkat lunak khusus lain yang ingin Anda jalankan tanpa perlu memulainya secara manual.

Program yang diluncurkan saat startup dikendalikan oleh systemd, manajer sistem dan layanan. systemd adalah proses pertama yang dijalankan saat startup. Itu selalu memiliki ID proses (PID) 1. Setiap proses lain yang berjalan di komputer Anda dimulai oleh systemd, atau oleh proses yang systemd telah dimulai.

Program yang berjalan di latar belakang disebut daemon atau layanan. Huruf “d” di akhir systemd adalah singkatan dari daemon. Pada artikel ini, kami akan membuat layanan contoh. Untuk mencentang semua kotak, layanan kami harus:

Terintegrasi dengan systemd melalui file unit layanan Diluncurkan saat startup Dapat dikontrol menggunakan systemctl, antarmuka kontrol untuk systemdDapat menulis ke jurnal

Kami akan mendemonstrasikan cara mengatur layanan sistem yang diluncurkan ketika Anda memulai sistem Anda dengan systemd. Untuk meluncurkan program grafis saat Anda masuk, gunakan manajer startup desktop Anda.

Membuat Program Layanan untuk systemd untuk Memulai

Kita harus memiliki program yang akan diluncurkan systemd. Kami akan membuat skrip sederhana, yang disebut “htg.sh”. Tutorial ini menggunakan editor teks Gedit, tetapi Anda dapat menggunakan editor teks apa pun yang Anda sukai.

touch htg.sh

gedit htg.sh

Editor gedit akan terbuka. Salin dan tempel teks berikut ke editor.

#!/bin/bashecho “htg.service: ## Mulai ##” | systemd-cat -p info while :doTIMESTAMP=$(tanggal ‘+%Y-%m-%d %H:%M:%S’)echo “htg.service: stempel waktu ${TIMESTAMP}” | systemd-cat -p infosleep 60done

Simpan perubahan Anda dan tutup editor.

Skrip tidak melakukan banyak hal, tetapi ada beberapa poin yang perlu diperhatikan.

Kedua garis gema disalurkan melalui systemd-cat, sebuah program yang mengambil output dari suatu program dan mengirimkannya ke jurnal. Entri ke jurnal diberi prioritas. Kami menggunakan opsi -p (prioritas) untuk menunjukkan bahwa pesan kami hanya untuk informasi (info). Itu bukanlah kesalahan atau peringatan penting. Ada perulangan while yang tak ada habisnya. Variabel TIMESTAMP diatur ke tanggal dan waktu saat ini. Ini diformat menjadi pesan dan dikirim ke jurnal. Skrip kemudian tertidur selama 60 detik. Setelah 60 detik, putaran diulangi. Jadi, skrip ini menulis pesan dengan stempel waktu ke jurnal satu kali per menit.

Kami akan menyalin skrip ke direktori /usr/local/bin.

sudo cp htg.sh /usr/local/bin

Dan kami perlu membuatnya dapat dieksekusi:

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

Membuat Layanan File Unit

Setiap program yang dijalankan oleh systemd memiliki file definisi, yang disebut file unit layanan. Ini menyimpan atribut tertentu yang dapat digunakan systemd untuk mencari dan meluncurkan program, dan untuk menentukan beberapa perilakunya.

Kita perlu membuat file unit untuk layanan baru kami, namun sebaiknya pastikan tidak ada file unit yang ada yang memiliki nama yang ingin kami berikan pada layanan baru kami.

sudo systemctl list-unit-files –type-service

Anda dapat menelusuri daftar file unit, yang diurutkan berdasarkan abjad, dan memeriksa apakah nama yang ingin Anda gunakan tidak diambil.

Layanan kami akan disebut “htg.service”. Tidak ada file unit yang memiliki nama itu, jadi kita dapat melanjutkan dan membuat file unit kita.

sudo gedit /etc/systemd/system/htg.service

Editor gedit akan terbuka. Salin dan tempel teks berikut ke editor:

[Unit]Description= Service ContohWants=network.targetAfter=syslog.target network-online.target[Service]Type=simpleExecStart=/usr/local/bin/htg .shRestart=on-failureRestartSec=10KillMode=process[Install]WantedBy=multi-user.target

Simpan perubahan Anda dan tutup editor.

Entri memiliki arti berikut. Ini adalah entri yang khas. Layanan sederhana kami sebenarnya tidak memerlukan sebagian besar darinya, tetapi menyertakannya memungkinkan kami menjelaskannya. NbspDeskripsi: Ini adalah deskripsi teks dari layanan Anda. Ingin: Layanan kami ingin — tetapi tidak memerlukan — jaringan sudah aktif sebelum layanan kami dimulai. After: Daftar nama unit yang harus dimulai setelah layanan ini berhasil dimulai, jika layanan tersebut belum berjalan. Jenis: Sederhana. systemd akan menganggap layanan ini dimulai segera setelah proses yang ditentukan oleh ExecStart telah di-fork. ExecStart: Jalur menuju proses yang harus dimulai. Mulai ulang: Kapan dan apakah layanan harus dimulai ulang. Kami telah menyetelnya ke “saat gagal”. RestartSec: Berapa lama menunggu sebelum mencoba memulai ulang layanan. Nilai ini dalam hitungan detik. KillMode: Mendefinisikan bagaimana systemd harus mematikan proses jika kita meminta systemctl untuk menghentikan layanan. Kami menyetelnya ke “proses”. Hal ini menyebabkan systemd menggunakan sinyal SIGTERM pada proses utama saja. Jika layanan kami adalah program non-sepele dan bukan skrip sederhana, kami akan menyetelnya ke “campuran” untuk memastikan bahwa setiap proses yang muncul juga dihentikan. WantedBy: Kami menetapkan ini ke “multi-user.target”, yang berarti layanan harus dimulai selama sistem berada dalam keadaan di mana banyak pengguna dapat masuk, baik antarmuka pengguna grafis tersedia atau tidak.

File unit tidak harus dapat dieksekusi, tetapi izin pada file unit harus membatasi siapa yang dapat mengeditnya. Anda tidak ingin pengguna jahat atau nakal mengubah file unit sehingga menjalankan program yang berbeda sama sekali.

Perintah ini akan memberikan izin membaca dan menulis kepada pemilik, dan izin membaca ke grup. Orang lain tidak akan memiliki izin.

sudo chmod 640 /etc/systemd/system/htg.service

Kita dapat meminta systemctl memeriksa sintaks file unit kita, bahkan jika layanan belum berjalan. Kesalahan apa pun akan dilaporkan. (Sebenarnya, bagian “.service” adalah opsional untuk sebagian besar perintah.)

systemctl status htg.service

Tidak ada kesalahan yang disorot, yang berarti file unit kami benar secara sintaksis.

Memulai Layanan Secara Otomatis dengan Perintah systemd

Saat Anda menambahkan file unit baru atau edit yang sudah ada, Anda harus memberi tahu systemd untuk memuat ulang definisi file unit.

sudo systemctl daemon-reload

Jika Anda ingin layanan diluncurkan saat startup, Anda harus mengaktifkannya:

sudo systemctl aktifkan htg

Mengaktifkan layanan tidak memulainya, itu hanya mengatur itu akan diluncurkan pada saat boot. Untuk memulai layanan sekarang, Anda harus menggunakan systemctl dengan opsi mulai.

sudo systemctl start htg

Memverifikasi Layanan

Setelah memulai layanan secara manual atau setelah me-reboot komputer, kami dapat memverifikasi bahwa layanan kami berjalan dengan benar.

sudo systemctl status htg.service

Status layanan ditampilkan untuk kami.

Titik hijau berarti layanan kami aktif dan berjalan dengan lancar. Nama layanannya adalah “htg.service”, dan deskripsi panjangnya adalah yang kami sediakan di file unit. Kami diperlihatkan file unit mana yang telah dimuat “/etc/systemd/system/htg.service”. Layanan ini aktif, dan waktu peluncuran layanan dicantumkan untuk kami. PID-nya adalah 7762. Ada dua tugas yang terkait dengan layanan ini. Total memori sebesar 928 Kibibyte digunakan oleh layanan ini. Grup kontrol mencakup skrip “htg.sh” dan perintah tidur, yang diluncurkan oleh “htg.sh.” Seringkali, perintah sleep akan melakukan pekerjaan untuk layanan ini.

Kami juga diperlihatkan 10 entri jurnal terakhir yang dihasilkan oleh layanan ini. Tidak mengherankan, semuanya berjarak satu menit.

Menghentikan dan Menonaktifkan Layanan

Jika Anda perlu menghentikan layanan, Anda dapat melakukannya dengan perintah ini:

sudo systemctl stop htg.service

Ini menghentikan layanan, tetapi tidak mencegahnya untuk memulai ulang berikutnya kali komputer di-reboot. Untuk menghentikan layanan yang diluncurkan saat startup, Anda harus menonaktifkannya:

sudo systemctl menonaktifkan htg.service

Jika layanan sedang berjalan, perintah ini tidak menghentikannya. Ini hanya memberitahu systemd untuk tidak meluncurkan layanan pada reboot berikutnya.

Jika Anda ingin menghentikan layanan dan mencegahnya diluncurkan saat startup, gunakan kedua perintah.

Tips Layanan

Pastikan program Anda berjalan seperti yang diharapkan sebelum Anda mencoba meluncurkannya sebagai service.

Linux Commands

Files

tar·pv·cat·tac·chmod·grep·diff·sed·ar·man·pushd·popd·fsck·testdisk·seq·fd·pandoc·cd·$PATH·awk·join·jq·fold· uniq·journalctl·tail·stat·ls·fstab·echo·less·chgrp·chown·rev·look·strings·type·rename·zip·unzip·mount·umount·install·fdisk·mkfs·rm·rmdir·rsync· df·gpg·vi·nano·mkdir·du·ln·patch·convert·rclone·shred·srm·scp·gzip·chattr·cut·find·umask·wc· tr

Processes

alias·screen·top·nice·renice·progress· strace·systemd·tmux·chsh·history·at·batch·free·which·dmesg·chfn·usermod·ps·chroot·xargs·tty·pinky·lsof·vmstat·timeout·wall·yes·kill·sleep·sudo· su·time·groupadd·usermod·groups·lshw·shutdown·reboot·halt·poweroff·passwd·lscpu·crontab·tanggal·bg·fg·pidof·nohup·pmap

Networking

netstat·ping·traceroute·ip·ss·whois·fail2ban· bmon·dig·finger·nmap·ftp·curl·wget·who·whoami·w·iptables·ssh-keygen·ufw·arping·firewalld

Terbaru

  • Apa itu Kepulauan Chagos? (Milik Inggris atau Mauritius?)
  • Apa itu Kiwano atau Melon Berduri (Cucumis Metuliferus)?
  • Apakah Paganisme itu Agama?
  • Perbaiki Kebodohannya, Pemerintah Buka Lagi Akses Ke Situs archive.org
  • Kenapa Disebut Ilmuwan Muslim, Bukan Ilmuwan Arab atau Ilmuwan Persia?
  • Indonesia Prasejarah, Benarkah Se-kaya itu?
  • Apa itu Bilangan Aleph ?
  • Jejak Aneh Nisan Makam Gaya Aceh di Pangkep Sulawesi Selatan
  • Rasa’il Ikhwan al-Shafa Fondasi Matematika dalam Filsafat Islam
  • Review Aplikasi Melolo, Saingan Berat Dramabox!
  • Review Game Dislyte: Petualangan Urban Myth yang Seru!
  • Microsoft Resmikan Cloud Region Pertama di Indonesia, Pacu Pertumbuhan AI
  • Bagaimana Bisa Xiaomi Jadi Raja dibanyak Sektor?
  • Sejarah Tokoh Judi Negara: Robby Sumampow
  • Kenapa Hongkong Mulai Kehilangan Anak Mudanya?
  • Apakah China ada Peternakan Panda?
  • Kebohongan Ajudan Bung Karno Soal Letkol Untung Habisi Para Jenderal?
  • Apakah Harga Minyak Dunia Turun Bikin OPEC Bangkrut?
  • Hal Konyol di Startrek Original Series
  • Inilah Deretan Buku-Buku Kontroversial di Dunia
RSS Error: WP HTTP Error: cURL error 35: OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to blog.emka.web.id:443
  • Apa itu Kepulauan Chagos? (Milik Inggris atau Mauritius?)
  • Apa itu Kiwano atau Melon Berduri (Cucumis Metuliferus)?
  • Apakah Paganisme itu Agama?

©2025 emka.web.id | Design: Newspaperly WordPress Theme