Başlangıcında nasıl bir komut dosyası çalıştırırım? [çift]

93

Bir klasörde bir komut dosyası var:

/path/to/my/script.sh

Sistemin her başlatılışında (sistemde hiç kimse oturum açmasa bile) bu betiğe ihtiyacım var. Bunun gerçekleşmesi için ne yapmam gerekiyor?

    
sordu Rusty 12.12.2012 15:40

5 cevap

121

Aşağıdakilerden herhangi biri için root ayrıcalıklarına ihtiyacınız olacak. Kök almak için bir terminal açın ve komutu çalıştırın

sudo -i

ve komut istemi, terminal oturumunun root ayrıcalıklarına sahip olduğunu belirten '#' olarak değişecektir.

Alternatif # 1: /etc/rc.local 'ye komut ekleme

vi /etc/rc.local

aşağıdaki gibi içerikle:

# This script is executed at the end of each multiuser runlevel
/path/to/my/script.sh || exit 1   # Added by me
exit 0

Alternatif # 2: Bir Başlatma işi ekle (15.04'ten eski sistemler için)

/etc/init/myjob.conf oluşturun

vi /etc/init/myjob.conf

aşağıdaki gibi içerikle

description     "my job"
start on startup
task
exec /path/to/my/script.sh

Alternatif # 3: Bir init betiği ekle (eski)

/etc/init.d/myscript 'da yeni bir komut dosyası oluşturun.

vi /etc/init.d/myscript

(Açıkçası, "myscript" olarak adlandırılmaya gerek yoktur.) Bu komut dosyasında, yapmak istediğiniz her şeyi yapın. Belki de bahsettiğin senaryoyu çalıştır.

#!/bin/sh
/path/to/my/script.sh

Yürütülebilir yapın.

chmod ugo+x /etc/init.d/myscript

Başlangıçta bu komut dosyasını çalıştırmak için init sistemini yapılandırın.

update-rc.d myscript defaults
    
verilen cevap jdthood 12.12.2012 16:07
45

Köklere veya giriş yapmaya bile ihtiyacınız yoktur.

crontab'ınızı ( crontab -e ) düzenleyebilir ve bunun gibi bir giriş oluşturabilirsiniz:

@reboot /path/to/script.sh

Bu şekilde, normal bir kullanıcı olarak çalıştırabilirsiniz. @reboot , sadece bilgisayar başlatıldığında (sadece yeniden başlatıldığında değil) çalıştırıldığı anlamına gelir.

    
verilen cevap Dan Jones 12.12.2012 17:20
11

terminalden

  1. newshell.sh.desktop klasöründe ~/.config/autostart dosyası oluştur:

    gedit ~/.config/autostart/newshell.sh.desktop
    
  2. Exec , Name ve Comment değerini değiştirin ve dosyaya ekleyin: ilk satır

     [Desktop Entry]
     Type=Application
     Exec=/full/link/to/your/newshell.sh
     Name=newshell
     Comment=whatever you want
    
  3. kaydetme

veya

bunu GUI'den yapabilirsin:

  1. Ubuntu 14.04'te "başlangıç ​​uygulamaları" aracını çalıştırın, sadece arama kutusuna yazın.
  2. aynı Exec , Name ve Comment ekleyin.
verilen cevap ChaosPredictor 16.09.2015 16:31
2

Evinizde, .bashrc adında bir dosyanız var. Bu dosya oturumunuzun açılışında gerçekleştirilir.

Dosyanın sonunda böyle bir şey koyun:

sh /path/to/your/script.sh

DÜZENLEME: Üzgünüm, sorunuzu cevaplamadım çünkü çözümümde bir kullanıcı oturum açtığında ...

Oturum açmadan önce bir şeyi yürütmek için, rcconf veya rc dosyasını deneyebilirsiniz: İşte

    
verilen cevap Gp2mv3 12.12.2012 15:47
-1

Sadece rc.local nano /etc/init.d/rc.local değerini aşağıdaki gibi düzenleyin:

/path/to/my/script.sh || exit 1 
exit 0
    
verilen cevap Arcsector 26.08.2017 00:43

Etiketlerdeki diğer soruları oku