Cara Menjalankan Perintah dan Skrip Linux Secara Automatik pada Sistem Reboot

How Run Linux Commands

Menjalankan aplikasi dan skrip secara automatik pada permulaan boleh berguna untuk mengautomasikan tugas dan acara boot biasa. Artikel ini akan menerangkan beberapa kaedah yang dapat digunakan untuk melancarkan aplikasi dan skrip pada reboot baru atau login baru.

Permohonan Permulaan

Ubuntu dan pengedaran berasaskan GNOME lain disertakan dengan aplikasi yang dipanggil Permulaan Aplikasi. Ia dapat digunakan untuk mengurus aplikasi dan skrip yang dijalankan pada sistem reboot atau log masuk yang baru.



Lancarkan aplikasi Permulaan Permulaan dari pelancar aplikasi dan klik pada butang Tambah untuk menambah entri baru.





Isi bidang Nama dan Perintah mengikut keperluan anda dan kemudian klik pada butang Tambah untuk menyelesaikan membuat entri baru. Entri yang dibuat dalam tangkapan skrin di bawah akan mengirim peringatan Buat Backup sebagai pemberitahuan sistem pada setiap but semula / log masuk. Anda boleh menggantinya dengan perintah anda sendiri atau dengan jalan penuh skrip bash anda. Anda juga boleh menggunakan arahan sistem yang ada atau yang boleh dilaksanakan yang biasanya terletak di pelbagai folder bin di seluruh sistem fail.

Seperti yang dinyatakan di atas, peringatan sandaran ditunjukkan pada setiap but semula.



Sistemd

Systemd adalah daemon dan pengurus perkhidmatan yang mengandungi pelbagai utiliti untuk menguruskan proses sistem dan komponen OS. Dalam bentuknya yang sederhana, ia biasanya digunakan untuk memulakan dan menamatkan perkhidmatan dalam kitaran but baru.

Systemd dapat digunakan untuk melancarkan aplikasi secara otomatis atau menjalankan skrip pada boot baru. Untuk membuat pemberitahuan peringatan sandaran yang sama seperti yang dijelaskan di atas, pertama anda harus membuat folder dan fail yang diperlukan dengan menjalankan perintah di bawah:

$mkdir -p~/.config/sistem/pengguna
$nano~/.config/sistem/pengguna/backup_reminder.service

Gantikan nano dengan arahan penyunting teks kegemaran anda. Ganti backup_reminder dengan nama lain yang anda sukai.

Tampal kod di bawah dalam fail backup_reminder.service yang dibuat menggunakan perintah di atas.

[Unit]
Penerangan = Menghantar peringatan sandaran pada setiap but semula
PartOf = grafik-sesi.target

[Perkhidmatan]
ExecStart = bash -c 'tidur 10; beritahu-hantar 'Buat Sandaran' '
Taip = oneshot

[Pasang]
WantedBy = grafik-sesi.target

Kod di atas cukup mudah. Ini mengirimkan pemberitahuan Buat Cadangan 10 saat selepas sesi grafik dimuat (sekali setiap but semula atau masuk).

Jalankan arahan di bawah ini untuk mengaktifkan perkhidmatan sehingga dapat dijalankan secara automatik pada setiap but semula.

$chmod 644~/.config/sistem/pengguna/backup_reminder.service
$ systemctl- pengguna mengaktifkanbackup_reminder.service
$ systemctl- penggunatambah nilai daemon
$ but semula

Ini hanyalah contoh ringkas menjalankan perintah asas semasa boot menggunakan systemd. Anda juga boleh membuat perkhidmatan lanjutan dengan pelbagai syarat dan pelbagai perintah. Untuk maklumat lebih lanjut, rujuk halaman man sistemd dengan menjalankan perintah di bawah:

$lelakisistem

Perhatikan bahawa contoh ini menerangkan pembuatan perkhidmatan baru yang tidak memerlukan akses root dan sesuai untuk memulakan aplikasi secara automatik yang tidak memerlukan izin root. Sekiranya anda ingin memulakan skrip secara automatik yang memerlukan akses root, anda harus membuat perkhidmatan systemd baru di direktori / etc / systemd / sistem dan bukannya folder folder ~ / .config / systemd / pengguna dan menghilangkan suis pengguna dalam perintah yang disebutkan di atas.

Pekerjaan Cron

Cron adalah alat yang dapat menjalankan tugas berjadual secara berkala mengikut keadaan yang ditentukan oleh pengguna. Pekerjaan berjadual ini dibuat di Crontab dalam format yang telah ditentukan. Dengan kata mudah, Crontab memberitahu Cron pekerjaan mana yang harus dijalankan pada waktu apa.

Seperti systemd, pekerjaan crontab dapat digunakan untuk melancarkan aplikasi dan menjalankan skrip secara automatik semasa boot. Untuk menambah pekerjaan cron baru, jalankan arahan di bawah:

$crontab-Dan

Tambahkan baris berikut di akhir fail teks (melancarkan terminal GNOME secara automatik pada setiap but semula):

SHELL = / bin / bash
@reboot sleep 30 && DISPLAY =: 0 gnome-terminal

Anda boleh menggunakan arahan anda sendiri atau menyediakan jalan penuh ke skrip shell.

Perhatikan bahawa tidak seperti systemd, cron tidak dapat mengesan sama ada sesi grafik telah dimuat atau tidak. Anda harus menentukan jangka masa menunggu sehingga pelayan X dimuat dan pengecam paparan. Anda boleh mengetahui tentang ID paparan anda dengan menjalankan perintah di bawah:

$membuang $ TAMPILAN

Kelewatan sebelum pelaksanaan perintah atau skrip bergantung pada konfigurasi sistem dan masa boot anda.

Rc.local

Kaedah lain untuk menjalankan skrip dan perintah pada permulaan adalah dengan menggunakan fail rc.local. Perhatikan bahawa dalam ujian saya, saya tidak dapat menangguhkan pelaksanaan skrip sehingga sesi grafik ditayangkan. Menambah sebarang kelewatan tidur menyebabkan kelewatan dalam memaparkan skrin masuk itu sendiri. Oleh kerana itu, saya tidak berjaya menjalankan aplikasi grafik semasa memulakan menggunakan fail rc.local. Mengedit rc.local juga memerlukan akses root, tidak seperti semua contoh lain yang dijelaskan di atas.

Untuk menambahkan perintah / skrip ke fail rc.local, jalankan perintah di bawah ini (buat fail rc.local baru jika tidak ada):

$sudo nano /dan lain-lain/rc.lokal

Tambahkan perintah anda antara #! / bin / bash dan keluar 0 baris, seperti yang ditunjukkan di bawah:

#! / bin / bash
jalan / ke / my_script.sh
keluar 0

Jadikan fail rc.local dapat dilaksanakan dengan menjalankan perintah di bawah:

$sudo chmod+ x/dan lain-lain/rc.lokal

Cukup reboot agar skrip permulaan berkuat kuasa.

Kesimpulannya

Ini adalah beberapa kaedah yang dapat digunakan untuk menjalankan skrip dan aplikasi secara automatik pada permulaan. Sekiranya anda ingin menjalankan skrip yang tidak memerlukan akses root, saya akan mengesyorkan menggunakan aplikasi GUI Permulaan Permulaan. Sekiranya anda ingin menjalankan aplikasi dan skrip dengan akses root, saya akan mencadangkan anda untuk membuat perkhidmatan systemd peringkat sistem.

Mengenai Pengarang

Nitesh Kumar

Saya adalah pembangun perisian bebas dan penulis kandungan yang menyukai Linux, perisian sumber terbuka dan komuniti perisian percuma.

Lihat semua catatan