Linux Komutları ve Komut Dosyaları Sistem Yeniden Başlatıldığında Otomatik Olarak Nasıl Çalıştırılır

How Run Linux Commands



Uygulamaları ve komut dosyalarını başlangıçta otomatik olarak çalıştırmak, yaygın önyükleme görevlerini ve olaylarını otomatikleştirmek için yararlı olabilir. Bu makale, uygulamaları ve komut dosyalarını yeni bir yeniden başlatma veya yeni bir oturum açma sırasında başlatmak için kullanılabilecek birkaç yöntemi açıklayacaktır.

Başlangıç ​​Uygulamaları

Ubuntu ve diğer GNOME tabanlı dağıtımlar, yalnızca Başlangıç ​​Uygulamaları adı verilen bir uygulamayla birlikte gelir. Yeni bir sistem yeniden başlatma veya oturum açma işleminde çalışan uygulamaları ve komut dosyalarını yönetmek için kullanılabilir.







Uygulama başlatıcıdan Başlangıç ​​Uygulamaları uygulamasını başlatın ve yeni bir giriş eklemek için Ekle düğmesine tıklayın.





Ad ve Komut alanlarını ihtiyaçlarınıza göre doldurun ve ardından yeni bir giriş oluşturmayı tamamlamak için Ekle düğmesine tıklayın. Aşağıdaki ekran görüntüsünde oluşturulan giriş, her yeniden başlatma / oturum açma işleminde sistem bildirimi olarak bir Yedekleme Yap hatırlatıcısı gönderir. Bunu kendi komutunuzla veya bash betiğinizin tam yolu ile değiştirebilirsiniz. Ayrıca, genellikle dosya sistemi genelinde çeşitli bin klasörlerinde bulunan mevcut sistem komutlarını veya yürütülebilir dosyaları da kullanabilirsiniz.





Yukarıda belirtildiği gibi, her yeniden başlatmada bir yedekleme hatırlatıcısı gösterilir.



sistem

Systemd, sistem süreçlerini ve işletim sistemi bileşenlerini yönetmek için çeşitli yardımcı programları içeren bir arka plan programı ve hizmet yöneticisidir. Basit biçiminde, genellikle hizmetleri yeni bir önyükleme döngüsünde başlatmak ve bitirmek için kullanılır.

Systemd, bir uygulamayı otomatik olarak başlatmak veya yeni bir önyüklemede bir komut dosyası çalıştırmak için kullanılabilir. Yukarıda açıklanan yedekleme hatırlatıcı bildiriminin aynısını oluşturmak için öncelikle aşağıdaki komutları çalıştırarak gerekli klasörleri ve dosyayı oluşturmanız gerekir:

$mkdir -P~/.config/sistem/kullanıcı
$nano~/.config/sistem/kullanıcı/backup_reminder.service

nano'yu favori metin düzenleyicinizin komutuyla değiştirin. backup_reminder'ı tercih ettiğiniz başka bir adla değiştirin.

Aşağıdaki kodu yukarıdaki komut kullanılarak oluşturulan backup_reminder.service dosyasına yapıştırın.

[Birim]
Description=Her yeniden başlatmada bir yedekleme hatırlatıcısı gönderir
PartOf=grafik-oturum.hedef

[Hizmet]
ExecStart=bash -c 'uyku 10; bildir-gönder 'Yedekleme Yap''
Tür=tek atış

[Düzenlemek]
WantedBy=grafik-session.target

Yukarıdaki kod oldukça basittir. Grafik oturumu yüklendikten 10 saniye sonra bir Yedekleme Yap bildirimi gönderir (her yeniden başlatma veya oturum açmada bir kez).

Her yeniden başlatmada otomatik olarak çalışabilmesi için hizmeti etkinleştirmek için aşağıdaki komutları çalıştırın.

$chmod 644~/.config/sistem/kullanıcı/backup_reminder.service
$ sistemctl--kullanıcı etkinleştirmebackup_reminder.service
$ sistemctl--kullanıcıarka plan programı
$ yeniden başlat

Bu, systemd kullanarak önyüklemede basit bir komut çalıştırmanın basit bir örneğidir. Ayrıca birden çok koşul ve birden çok komutla gelişmiş hizmetler oluşturabilirsiniz. Daha fazla bilgi için aşağıdaki komutu çalıştırarak systemd kılavuz sayfasına bakın:

$adamsistem

Bu örneğin, kök erişimi gerektirmeyen ve kök izinleri gerektirmeyen otomatik başlatma uygulamaları için uygun yeni bir hizmet oluşturmayı açıkladığını unutmayın. Kök erişimi gerektiren komut dosyalarını otomatik olarak başlatmak istiyorsanız, /etc/systemd/system dizininde ~/.config/systemd/user klasörü yerine yeni bir systemd hizmeti oluşturmanız ve yukarıda belirtilen komutlarda –user anahtarını atlamanız gerekir.

Cron İşi

Cron, bir kullanıcı tarafından belirlenen koşullara göre zamanlanmış görevleri periyodik olarak çalıştırabilen bir araçtır. Bu zamanlanmış işler, önceden tanımlanmış bir biçimde Crontab'da oluşturulur. Basit bir ifadeyle, Crontab, Cron'a hangi işlerin hangi zamanda çalıştırılacağını söyler.

Systemd gibi, crontab işleri, uygulamaları başlatmak ve açılışta otomatik olarak komut dosyalarını çalıştırmak için kullanılabilir. Yeni bir cron işi eklemek için aşağıdaki komutu çalıştırın:

$crontab-Ve

Metin dosyasının sonuna aşağıdaki satırları ekleyin (her yeniden başlatmada GNOME terminalini otomatik olarak başlatır):

KABUK=/bin/bash
@reboot sleep 30 && DISPLAY=:0 gnome-terminali

Kendi komutunuzu kullanabilir veya bir kabuk komut dosyasına tam yol sağlayabilirsiniz.

Systemd'den farklı olarak, cron'un grafiksel oturumun yüklenip yüklenmediğini tespit edemediğini unutmayın. X sunucusu yüklenene kadar tahmini bir bekleme süresi ve bir görüntü tanımlayıcısı belirtmeniz gerekir. Aşağıdaki komutu çalıştırarak ekran kimliğinizi öğrenebilirsiniz:

$dışarı attı $EKRAN

Komutun veya betiğin yürütülmesinden önceki gecikme, sistem yapılandırmanıza ve önyükleme sürenize bağlıdır.

Rc.yerel

Komut dosyalarını ve komutları başlangıçta çalıştırmanın başka bir yöntemi de rc.local dosyasını kullanmaktır. Testlerimde, grafik oturumu canlı olana kadar komut dosyası yürütmeyi erteleyemediğimi unutmayın. Herhangi bir uyku gecikmesi eklemek, giriş ekranının kendisinin gösterilmesinde gecikmeye neden olur. Bu nedenle, başlangıçta rc.local dosyasını kullanarak grafik uygulamaları çalıştırmada başarılı olamadım. rc.local dosyasını düzenlemek, yukarıda açıklanan diğer tüm örneklerin aksine, kök erişimi gerektirir.

rc.local dosyasına komutlar / komut dosyaları eklemek için aşağıdaki komutu çalıştırın (eğer yoksa yeni bir rc.local dosyası oluşturur):

$sudo nano /vesaire/rc.yerel

Komutlarınızı #! /bin/bash ve aşağıda gösterildiği gibi 0 satırdan çıkın:

#! /bin/bash
path/to/my_script.sh
0 çıkışı

Aşağıdaki komutu çalıştırarak rc.local dosyasını yürütülebilir yapın:

$sudo chmod+ x/vesaire/rc.yerel

Başlangıç ​​komut dosyasının etkili olması için yeniden başlatmanız yeterlidir.

Çözüm

Bunlar, başlangıçta komut dosyalarını ve uygulamaları otomatik olarak çalıştırmak için kullanılabilecek birkaç yöntemdir. Kök erişimi gerektirmeyen komut dosyaları çalıştırmak istiyorsanız, Başlangıç ​​​​Uygulamaları GUI uygulamasını kullanmanızı öneririm. Kök erişimi olan uygulamaları ve komut dosyalarını çalıştırmak istiyorsanız, sistem düzeyinde bir systemd hizmeti oluşturmanızı öneririm.

Yazar hakkında

Nitesh Kumar

Linux'u, açık kaynaklı yazılımı ve özgür yazılım topluluğunu seven bir serbest çalışan yazılım geliştiricisi ve içerik yazarıyım.

Tüm gönderileri görüntüle