Windows Startup'ın Linux eşdeğeri nedir?


Yanıtlar:


11

Cron gibi bir şey mi?

Not edin @rebootGirişi

Bu en esnek yaklaşım ve en çok Windows'ın "Zamanlanmış Görevler" (daha iyi) gibi yaklaşımdır.


kullanıcının niyeti olmadan CRON'a iş eklemek mümkün müdür?
Sourav

Evet. /etc/cron.dbilmeden programınıza yazmanız veya programınızdan crontab'ı aramanız yeterlidir .

Ne demek istiyorsun? Programlı olarak manuel olarak eklemek istiyorsanız, evet. Crontabs sadece metin dosyalarıdır.

10

Xorg otomatik başlatma

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 .

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).

Systemd hizmeti olarak otomatik başlatma

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 ):

  • Kök veya belirli bir kullanıcı olarak çalıştır: ör. User=myuser
  • Yapılandırılabilir zaman aşımları ile arıza durumunda hizmetleri yeniden başlatın: Restart=on-failure|on-watchdog|on-abnormal|always
  • Hizmet türünü ayarlama: Type=simple|forking|oneshot|notify|dbus
  • Başlangıç önkoşullar ve bağımlılıkları kurmak, ağ (kurulduktan sonra başlamak için hizmetinizi ayarlayabilirsiniz yani Wants=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çerlidir systemd: 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. systemd olmaz kullanıcı kullanması .bashrcve $PATH.

Daha fazla bilgi:


7

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.


dosyaya giriş eklemek programı her seferinde başlayacak?
Sourav

2
Her yeniden başlattığınızda, evet. Düzenli olarak planlanmış işler (her gün, saat, hafta veya herhangi bir garip kombinasyon) cronistiyorsanız , zamanlayıcı arkadaşınızdır.

3
  1. Startup applicationsAna sayfa düğmesini kullanarak arama yapma
  2. Tıklayın Add
  3. Uygulamayı aramak için bir ad girin (herhangi bir ad yapılır)
  4. İçinde Startup command box komutu girin
  5. Tıklayın OK (Listede yeni komut görmelisiniz)
  6. Tıklayın Close

Yeniden başlatarak veya oturumu kapatıp tekrar açarak test edin.

Kaynak: https://help.ubuntu.com/community/AddingProgramToSessionStartup


1

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.


0

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.


3
Bir çözüm bulduğunuza sevindim, cevabınızdaki adımların bir özetini ekleyebilir misiniz, bu yüzden bu cevap sadece bir bağlantıdan daha yararlıdır. Teşekkürler!
slm

Başlangıçta izleme panelimi otomatikleştirmek ve kapatmak için bir yol arıyordu. Terminal'e girdiğim komut 'sudo modprobe -r psmouse' idi. Bu, geçerli oturumdayken izleme dörtgenini kapatır. Bunu açılışta otomatikleştirmek istedim. Biraz araştırma yaptım ve 'sudo modprobe -r psmouse ekleyerek /etc/rc.local dosyasını değiştirerek bir senaryo yazdım. Ardından Terminal'den şu komutları verin: 'sudo mv / dosyaadı /etc/init.d/' 'sudo chmod + x /etc/init.d/filename' 'sudo update-rc.d dosyaadı varsayılanları' Şimdi dokunmatik yüzey kapalı başlangıçta.
CatGuyTX
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.