Ubuntu'da oturum açarken otomatik olarak bir kabuk betiği nasıl çalıştırılır


15

Oturum açtığımda bir komut dosyasının otomatik olarak çalıştırılmasını nasıl sağlayabilirim? Makine başlatıldığında değil, tüm kullanıcılar için değil, sadece ben (veya betiğe sahip herhangi bir belirli kullanıcı) GNOME kullanıcı arayüzü üzerinden oturum açtığımda değil.

Başka bir yerde okuduğumda bunun .bash_profileana dizinimde olduğunu düşündüm , ama benim için bir etkisi yok. Yazarak bir terminal penceresinde el ile yürüttüğümde ~/.bash_profileçalışır, ancak oturum açtığımda otomatik olarak çalışmaz.

Ubuntu 11.04 kullanıyorum. .Bash_profile dosyamdaki dosya izni -rwx------. Bugün oluşturmadan önce ana dizinimde hiçbir .bash_profile mevcut değildi.

Linux'un eski sürümlerinin .profileher kullanıcı için bir dosyaya sahip olduğunu hatırlıyorum , ama bu da işe yaramıyor.

Nasıl oldu? .Bash_profile dosyasını çalıştırmak için başka bir şey yapılandırmam gerekir mi? Veya kullanıcı başına oturum açma komut dosyasının başka bir dosyada olması gerekiyor mu?


Bir bash terminalini her açışınızda .bash_profile, .profile ve .bashrc (aslında ubuntu tarafından kullanılan) yüklenir. Yani aslında GDM'ye giriş yaparsanız yükleneceklerinden emin değilim.
Juan Sebastian Totero

Ubuntu sürümünüzü göndermek yardımcı olabilir. Ubuntu 10.10'da .bashrc "benim için çalışıyor (TM)."
Vlueboy

GUI'ye veya kabuğa oturum açtığınızda mı demek istediniz?
Flimzy

bash bunları yeni bir kabuk başlattığınızda yükler, böylece Gnome'da (GDM) oturum açtığınızda değil, yalnızca bir terminal penceresi açtığınızda veya sanal bir terminalde oturum açtığınızda yüklenirler.
shiftycow

Orijinal soruda bahsettiğim gibi Ubuntu 11.04 kullanıyorum.
Mike Rowave

Yanıtlar:


11

Sistem> Tercihler> Başlangıç ​​Uygulamaları'na aşağıdaki komutu ekleyebilirsiniz:

bash /full/path/to/your/script.sh

Bu hile yapmalı;)


Biliyor musun, bunu daha önce de yaptým ve iţe yaramadý ... sadece betiđin yolundan önce "bash" yazmadým! Daha sonra bash ile deneyeceğim. Meraktan, GUI aracılığıyla Başlangıç ​​Uygulamalarına bir şey girdiğinizde, hangi dosyaya kaydedilir?
Mike Rowave

Başlangıç ​​programları/etc/xdg/autostart
shiftycow

Ekleme bash /home/myusername/scriptname"Başlangıç Uygulamaları" ile çalıştı! Teşekkürler. Ancak bu Ubuntu üzerinde GNOME'a özgü olabilir, bu yüzden bu "Başlangıç ​​Uygulamaları" menü öğesindeki kayıtların nerede kaydedildiğini merak ediyordum, çünkü Linux'un diğer modern sürümlerinde benzer olması daha olasıdır.
Mike Rowave

2
/etc/xdg/autostartbir kullanıcıya özgü olmayan, sistem çapında bir dosya gibi görünüyor.
Mike Rowave


8

Temel olarak, nodiscc'nin önerdiği gibi, bir masaüstü başlatıcısı oluşturun: ~ / .config / autostart / script.desktop ve aşağıdaki içerikleri:

[Desktop Entry]
Type=Application
Name=Autostart Script
Exec=autostart
Icon=system-run
X-GNOME-Autostart-enabled=true

Ardından autostart betiğini oluşturun: ~ / bin / autostart , bash içeriğinizle:

#!/bin/bash
# Execute bash script below

~ / Bin / autostart komutunun yürütülebilir olduğundan emin olun


5

Crontab'a bir satır ekleyebilirsiniz -

crontab -e

Ardından bu satırı açılan dosyaya ekleyin:

@reboot /path/to/your/cool/script

Bu, komut dosyasını yeniden başlatıldığında çalıştıracaktır. Daha fazla ayrıntı için bkz.man crontab


Neden bilmiyorum, ama "uygulamaları başlatmak" .sh dosyaları çalıştıramıyorum, bu nedenle şimdi bunu yapmanın en kolay yolu, cron
Albert Català


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.