Unity Desktop için başlangıç ​​komut dosyaları nerede?


11

Lightdm kimlik doğrulamam başarılı olur olmaz bir komut dosyası çalıştırmak istiyorum ve Birliğim yüklenmeye başlıyor. ve scriptlerimi root kullanıcısı olarak çalıştırmak istiyorum.

Unity'de başlangıç ​​komut dosyaları nerede bulunur?


X yüklendikten sonra komut dosyasını çalıştırmak istiyorum.
Shnd


@Shnd X aslında lightdm'den önce başlar, çünkü lightdm X'de de çalışır. Kullanıcı olarak bir şey çalıştırmak istiyorsanız, muhtemelen "lightdm kimlik doğrulaması başarılı olduktan sonra" veya başka bir deyişle "masaüstü başlatıldığında" istersiniz. Oturum açmış bir kullanıcınız olsun ya da olmasın, bilgisayar sadece önyükleme yaparken bir komut dosyası çalıştırmak da mümkündür (örneğin X'i başlatan şey) tamamen farklı bir sorudur. Bir şeyi kullanıcı olarak çalıştırmak istiyorsanız, muhtemelen bunu istersiniz ve cevap, başlangıç ​​sisteminize bağlıdır.
erikbwork

Yanıtlar:


5

Önce komut dosyanızı yerleştirin /usr/binve yürütme izni verin.

Şimdi /home/[user-name]/.config/autostart/başlangıçta çalışan komut dosyanızı çalıştıran .desktop dosyası oluşturun .

Örnek: - Komut dosyasının dosya adı "örnek" veya "örnek.sh" olsun

Aşağıdaki satırlarla gedit ile .desktop dosyası oluşturun ve dosya adı olarak kaydedin. /home/[user-name]/.config/autostart/

[Desktop Entry]
Type=Application
Exec=sudo example
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=myscript
Comment=Startup Script

Burada Exec=sudo exampleveya Exec=sudo example.shkomut dosyanızı .desktop dosyasına yürütme izni ver'den bir kök olarak /usr/binçalıştırır.

Şimdi, Script başlangıçta çalışır.



Teşekkürler işe yarıyor. Ancak uptart ile aynı şeyi belki biraz daha basit hale getirebilirsiniz (cevabıma bakın).
TuKsn


.Desktop dosyasının yürütülebilir olarak işaretlenmesi gerektiğini düşünmüyorum.
Julian

4

Başka bir olasılık:

İçinde dosya oluştur $HOME/.config/upstart/my-upstart-script.conf

start on desktop-start
stop on desktop-end

script
  sudo fdisk -l > /home/[user-name]/upstart-test.txt        
end script

Başlatma ile ilgili diğer ayrıntılar :

http://ifdeflinux.blogspot.de/2013/04/upstart-user-sessions-in-ubuntu-raring.html

http://upstart.ubuntu.com/cookbook/

sudoŞifre olmadan çalıştırılacak bilgiler :

Şifreyi sudo kullanarak bir uygulama nasıl çalıştırılır?

Parola olmadan belirli sudo komutlarını nasıl çalıştırabilirim?


"$ HOME / .config / upstart" makinemde böyle bir dizin yok.
Kalamalka Kid

1
@KalamalkaKid Hangi Ubuntu sürümünü kullanıyorsunuz? Uptart dizini bu konumda olmalıdır /home/yourusername/.config/upstart/. Nautilus'ta ev müdürünüzü açın, Ctrl + H tuşlarına basın ve .config
TuKsn

2

Bir komutu root olarak çalıştırmak için , giriş yaptıktan sonra başka bir basit numara var:

İki adım alır:

  • girişte bir tetikleyici dosya oluştur
  • (ayarlanan root tarafından işletilen bir cronjob oluşturmak /etc/crontab(Emriniz çalıştıran) küçük bir komut dosyasını çalıştırmak için,) eğer ve ancak eğer tetik dosya var. Tetikleyici dosya aynı komut dosyası tarafından kaldırıldığından, komutunuz yalnızca bir kez çalışır.

Sıra şu şekildedir:

USER LOGIN > trigger file is created > cronjob runs script (with your command) and removes trigger file, > next time the script passes, since the trigger file does not exist anymore

Kurulum

İki küçük senaryo:

Biri girişte tetikleyici dosyası oluşturmak için:

#!/bin/sh
touch $HOME/.trigger

ve bir iki komutu çalıştırır:

#!/bin/bash

FILE="/path/to/your/homedirectory/.trigger"
# don't use $HOME here, since you run it by root

if [ -f $FILE ]; then
   <your command here, run by root>
   rm -f $FILE
fi
  • her iki betiği de iki boş dosyaya kopyalayın create_trigger.shve olarak kaydedin run_command.sh.
  • Kolaylık nedeniyle, ikisini de yürütülebilir yapın.
  • Başlangıç ​​Uygulamalarınıza aşağıdaki komutu ekleyin (Kısa Çizgi> Başlangıç ​​Uygulamaları> Ekle)

    /path/to/create_trigger.sh
    
  • Aşağıdaki satırı /etc/crontabdosyaya ekleyin ( sudo nano /etc/crontab):

    * * * * * root /path/to/run_command.sh
    

Şimdi tanımlanan komut, oturum açma işleminden itibaren bir dakika içinde tek bir kez çalışır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.