Kullanıcı oturum açma işleminde bir komut yürütün


23

Linux masaüstü sisteminde, kullanıcı oturum açtığında bir komut çalıştırmak istiyorum.

Diğer bazı mesajları okuduktan sonra, komutu girmeye çalıştım ~/.bashrcancak başarısız oldum . Dahası, sistem kullanıcı girişi için bir grafik arayüzü kullanır, bu nedenle komut bir kabuğun başlangıcı ile ilgili olmamalıdır.

Komutu sonuçsuz bulunan komut dosyalarından birine eklemeye de çalıştım /etc/profile.d.

Bunu yapmanın başka bir yolu var mı? Giriş yaptıktan sonra sistemin okuduğu herhangi bir dosya?


Yanıtlar:


21

Grafiksel ekran yöneticisinin klasik başlangıç ​​dosyalarını okuyacağının garantisi yoktur. Bu, dağıtımlar arasında ve ekran yöneticileri arasında değişir. Aşağıdakilerden biri olsa çalışmalı.

  1. Başlangıç ​​uygulamalarını ayarlamak için masaüstü ortamınızın yerel yöntemini kullanın. Ayrıntılar, kullandığınız DE'ye bağlı olarak değişir, ancak komutunuzu çalıştıran bir komut dosyası oluşturabilir ve bunu başlangıç ​​uygulamaları listesine ekleyebilirsiniz. Örneğin, sistemimde (Tarçın), bunu "Sistem Ayarları" => "Başlangıç ​​Uygulamaları" aracılığıyla yapabilirsiniz.

  2. Kullanın ~/.xprofile, bu, en azından GDM, LDM, LightDM ve LXDM oturum açma yöneticileri tarafından sağlanmıştır.

  3. Yukarıdakilerin hiçbiri işe yaramazsa, şu komutu eklemeyi deneyin ~/.profile: Bu, giriş kabukları için ana başlatma dosyasıdır ve ayrıca giriş sırasında bazı grafik kabukları tarafından okunur.

  4. @Derobert yorumlarda da belirtildiği gibi, ücretsiz masaüstü standartlarını da kullanabilirsiniz :

    Autostart Dizinleri, "masaüstü baz dizini spesifikasyonu" ndaki "Bu özelliğe referans" bölümüne göre tanımlandığı şekilde $ XDG_CONFIG_DIRS / autostart 'dır.

    Aynı dosya adı birden fazla Autostart Dizini altında bulunuyorsa, sadece en önemli dizinin altındaki dosya kullanılmalıdır.

    Örnek: $ XDG_CONFIG_HOME ayarlanmamışsa, kullanıcının giriş dizinindeki Autostart Dizini ~ / .config / autostart /

    Örnek: $ XDG_CONFIG_DIRS, sistem genelinde ayarlanmamışsa, Autostart Dizini / etc / xdg / autostart /

    Örnek: Eğer $ XDG_CONFIG_HOME ve $ XDG_CONFIG_DIRS ayarlanmamışsa ve /etc/xdg/autostart/foo.desktop ve ~ / .config / autostart / foo.desktop iki dosyası mevcutsa, sadece ~ / .config / autostart / foo.desktop dosyası mevcut olacaktır. ~ / .config / autostart /, / etc / xdg / autostart / dizininden daha önemli olduğu için masaüstü kullanılacaktır.

~/.bashrcBöylece grafik ya da değil, giriş kabukları üzerinde göz ardı edilir, sadece etkileşimli olmayan giriş kabukları ile okunur, burada tamamen alakasız.


5
Belirtmek isteriz ~/.config/autostartve /etc/xdg/autostart/hangi göre standart yerlerdir Masaüstü Uygulaması otomatik başlatma Şartname . Ve ayrıca /etc/X11/Xsession.dve ~/.xsession.
derobert

6

Başka bir seçenek de pam kullanmaktır - bu, oturum açma işlemlerini tanımlamanız için size kesin bir yol sunar.

Genel bir işlem için pam_exec'e güvenebilirsiniz ( http://manpages.ubuntu.com/manpages/hardy/man8/pam_exec.8.html ). Bununla birlikte, daha güvenli bir şekilde daha belirli bir eylem gerçekleştirmeniz gerekiyorsa, yaygın olarak kullanılan pam_mount (oturum açma bağları için - http: //manpages.ubuntu) gibi daha iyi bir uyum sağlayacak daha özel pam modülleri olabilir . com / manpages / hardy / man8 / pam_mount.8.html ) veya pam_echo (kullanıcılara keyfi mesajlar için - http://manpages.ubuntu.com/manpages/hardy/man8/pam_echo.8.html ).

Genel olarak, pam, girişleri özelleştirmek için çok temiz bir sistemdir, bu nedenle diğerlerinin önerdiği gibi, potansiyel olarak güvenli olmayan komut dosyalarına güvenmek yerine, içine biraz daha bakmak isteyebilirsiniz.

Örnek

Oldukça tipik bir /etc/pam.d/system-auth verildiğinde, şu şekilde giriş yaptıktan sonra pam_exec'i kullanabiliriz:

session         optional        pam_ssh.so
session         required        pam_limits.so
session         required        pam_env.so
session         optional        pam_mktemp.so
session         required        pam_unix.so
session         optional        pam_exec.so /usr/local/bin/my_prog
session         optional        pam_permit.so

nerede /usr/local/bin/my_progbaşarılı bir kullanıcı girişten sonra yürütülüyor keyfi bir programdır.


2
Bu iyi bir cevap, pamönemsiz olmadığı için konfigürasyonu ekleyeceğiniz satırın bir örneğini eklemeniz gerekir .
Graeme

2

Bu konuya göre: Giriş yaptıktan sonra otomatik olarak komut çalıştırılsın mı?

İhtiyacınız .bashrcolmayanları (başlangıçta) ve başlangıç ​​uygulamalarının çözümünü sizde bulabilirsiniz. Daniel S.'den alıntı yapıyorum.

gnome-session-properties Başlangıç ​​uygulamalarını yapılandırmak için kullanılabilir.

Ayrıca, bir uygulamanın sistem önyüklemesinde çalışmasını istiyorsanız, crontab'ınıza aşağıdaki gibi bir kural ekleyebilirsiniz (crontab'ı ile düzenleyin crontab -e):

@reboot /run/this/program/at/boot >/dev/null 2>&1
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.