Sistem her başlatıldığında Linux başlangıcına bir uygulama / komut dosyası eklemenin bir yolu var mı?
Bazı otomatik bir yol arıyorum, yani kullanıcı cron işi ya da böyle bir şey tarafından eklememelisiniz.
Sistem her başlatıldığında Linux başlangıcına bir uygulama / komut dosyası eklemenin bir yolu var mı?
Bazı otomatik bir yol arıyorum, yani kullanıcı cron işi ya da böyle bir şey tarafından eklememelisiniz.
Yanıtlar:
Sistem düzeyi başlangıç komut dosyalarının yanı sıra, masaüstü ortamınızın kendi otomatik çalışma programlarına sahip olabilir. Klasörün .config/autostart, otomatik çalıştırma girişlerini tanımlamanın masaüstü için nötr bir yolu olması gerekir. /etc/xdg/autostartsistem çapında yapılandırma içindir. Spesifikasyon hakkında ayrıntılar için http://developer.gnome.org/autostart-spec/ .
LXDE için otomatik başlatma girişleri de ayarlanabilir ~/.config/lxsession/LXDE/autostart .
Ağ kurulduktan sonra komut dosyalarınızı çalıştırmanız gerekirse biraz farklıdır . Bu durumda, ağ yöneticiniz için tanımlanabilecek özel bağlantı sonrası komut dosyalarını kontrol etmelisiniz. Hem NetworkManager hem de wicd'nin bağlantı sonrası otomatik çalıştırma girişlerini belirtmek için kendi yolları vardır. Ağ üzerinden yapılandırılmışsa ifupdown, post-up komut dosyaları/etc/network/if-up.d/ klasöre . Ancak bağlantı sonrası komut dosyalarını çalıştırmak için daha iyi bir yaklaşım sistemd olabilir (modern dağıtımların çoğunluğu olan onu destekleyen sistemler için).
Otomatik başlatmak istediğiniz şey, bir masaüstü gerektiren grafiksel bir uygulama değilse, xorg veya mevcut masaüstü ortamınız tarafından sağlanan otomatik başlatma özelliklerini kullanmaktan kaçınmak en iyisidir.
systemd birçok modern dağıtımda her yerde bulunur ve hizmetlerinizin nasıl başlatıldığı ve nasıl çalıştığı konusunda çok fazla kontrol ve esneklik sunar.
Bazı faydaları özetleyeceğim ( systemd çok daha fazlasını yapabilir ):
User=myuserRestart=on-failure|on-watchdog|on-abnormal|alwaysType=simple|forking|oneshot|notify|dbusWants=network-online.targetiçinde [Unit]bölüm).Bir telgraf klibi arka plan programı başlatan örnek bir hizmet. Yerleştirin /etc/systemd/system/tg.service.
[Unit]
Description=MyDaemon
Wants=network-online.target
After=network-online.target
[Service]
ExecStart=/usr/local/bin/telegram-cli -k /etc/telegram-cli/tg-server.pub -W -P 1234 -d -vvvRC
ExecStop=/usr/bin/pkill -f telegram-cli
User=jicu
[Install]
WantedBy=multi-user.target
Artık hizmetin otomatik olarak başlamasını sağlayabilirsiniz:
sudo systemctl enable tg
Hizmeti başlatın:
sudo systemctl start tg
Hizmeti durdurun:
sudo systemctl stop tg
Durumu kontrol edin:
systemctl status tg
Hizmeti devre dışı bırakın:
sudo systemctl disable tg
Sizi fazladan yazmak ~/.bashrciçin satırınıza ekleyebilirsiniz, böylece alias sc='sudo systemctl $*'yukarıdaki komutları kısaltabilirsiniz sc start tg.
NOT: Kullandıysanız
cron, crontab girişlerinin sınırlı bir ortamda çalıştırıldığının farkındaysanız - aynı durum aşağıdakiler için de geçerlidirsystemd: her zaman mutlak yollar kullanın ve tanımlanmış değişkenlerin hiçbir varsayımını yapmayın. Komut dosyalarınızın bağımlı olduğu değişkenleri açıkça ayarlayın.systemdolmaz kullanıcı kullanması.bashrcve$PATH.
Daha fazla bilgi:
Evet, Linux'ta başlangıçta veya dizininde rc.localbulunan yürütülebilir dosyaların yollarını tanımlayarak programları çalıştırmak mümkündür , örneğin:/etc/etc/rc.d
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
touch /var/lock/subsys/local
/path/to/executable
Not: Dosyanın belgelerinde açıklandığı gibi yürütülebilir hakları atamayı unutmayın, yani Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure that this script will be executed during boot.
Startup applicationsAna sayfa düğmesini kullanarak arama yapmaAdd Startup command box komutu girinOK (Listede yeni komut görmelisiniz)Close Yeniden başlatarak veya oturumu kapatıp tekrar açarak test edin.
Kaynak: https://help.ubuntu.com/community/AddingProgramToSessionStartup
Her dağıtım kendi bootstrap tekniğini kullanır, bu nedenle dağıtımınız için dokümanlara bakmanız gerekir. /etc/rc.local, bazı otomatik komut dosyaları yerleştirebileceğiniz bir yerdir, ancak gerçekten eskidir. Artık linux tabanlı sistemlerin çoğunda çalışma seviyeleri veya systemd önyükleme kullanılıyor, bu nedenle otomatik olarak çalıştırılan işlerin çoğu ince dereceli kontrol edilebilir.
Cevabımı burada buldum: /programming/7221757/run-automatically-program-on-startup-under-linux-ubuntu Hareket halindeyken izleme dörtgenimi kapatmak için bir dosya / komut dosyası oluşturabildim Linux Ubuntu 12.10 oturumum.