Ist es möglich, einen Job in CRON hinzuzufügen, ohne dass der Benutzer dies beabsichtigt?
Sourav
Ja. schreiben sie einfach in /etc/cron.dihr programm oder rufen sie crontab auf, ohne dass sie es merken.
Was meinen Sie? Wenn Sie manuell programmgesteuert hinzufügen möchten, dann ja. Crontabs sind nur Textdateien.
10
Xorg-Autostart
Abgesehen von Startskripten auf Systemebene verfügt Ihre Desktop-Umgebung möglicherweise über eine eigene Methode zum automatischen Ausführen von Programmen. Der Ordner .config/autostartsoll eine desktopneutrale Methode zum Definieren von Autorun-Einträgen sein. /etc/xdg/autostartist für die systemweite Konfiguration. Details zur Spezifikation unter http://developer.gnome.org/autostart-spec/ .
Für LXDE können auch Autostart-Einträge eingestellt werden ~/.config/lxsession/LXDE/autostart.
Es ist ein bisschen anders, wenn Sie Ihre Skripte ausführen müssen, nachdem das Netzwerk funktioniert hat. In diesem Fall sollten Sie die speziellen Post-Connect-Skripts überprüfen, die für Ihren Netzwerkmanager definiert werden können. Sowohl NetworkManager als auch wicd haben ihre eigenen Möglichkeiten, Autorun-Einträge nach dem Verbinden anzugeben. Wenn das Netzwerk über konfiguriert wurde ifupdown, können Post-Up-Skripte in den /etc/network/if-up.d/Ordner gestellt werden. Ein besserer Ansatz für die Ausführung von Post-Connect-Skripten könnte jedoch systemd sein (für Systeme, die dies unterstützen, was die Mehrheit der modernen Distributionen darstellt).
Autostart als Systemdienst
Wenn das, was Sie automatisch starten möchten, keine grafische App ist, für die ein Desktop erforderlich ist, vermeiden Sie am besten die Verwendung von Autostart-Funktionen, die von xorg oder Ihrer aktuellen Desktop-Umgebung bereitgestellt werden.
systemd ist in vielen modernen Distributionen allgegenwärtig geworden und bietet viel Kontrolle und Flexibilität in Bezug auf die Art und Weise, wie Ihre Dienste gestartet werden und wie sie ausgeführt werden.
Als root oder als bestimmter Benutzer ausführen: zB User=myuser
Starten Sie die Dienste bei einem Fehler mit konfigurierbaren Zeitüberschreitungen neu: Restart=on-failure|on-watchdog|on-abnormal|always
Festlegen des Diensttyps: Type=simple|forking|oneshot|notify|dbus
Stellen Sie Startvoraussetzungen und Abhängigkeiten her, dh Sie können Ihren Dienst so einstellen, dass er nach dem Hochfahren des Netzwerks startet ( Wants=network-online.targetsiehe [Unit]Abschnitt).
Ein Beispieldienst, der einen Telegramm-Cli-Dämon startet. Legen Sie es in /etc/systemd/system/tg.service.
Jetzt können Sie den Dienst für den Autostart aktivieren:
sudo systemctl enable tg
Starten Sie den Dienst:
sudo systemctl start tg
Beenden Sie den Dienst:
sudo systemctl stop tg
Überprüfen Sie den Status:
systemctl status tg
Deaktivieren Sie den Dienst:
sudo systemctl disable tg
Um Ihnen zusätzliche Tipparbeit zu ersparen, können Sie ~/.bashrcdie Zeile hinzufügen und alias sc='sudo systemctl $*'dann die obigen Befehle auf z sc start tg. B. kürzen .
HINWEIS: Wenn Sie cronCrontab-Einträge verwendet haben, wissen Sie, dass sie in einer eingeschränkten Umgebung ausgeführt werden. Dies gilt auch für Folgendes: Verwenden Sie systemdimmer absolute Pfade und gehen Sie nicht davon aus, dass Variablen definiert sind. Legen Sie explizit alle Variablen fest, von denen Ihre Skripte abhängen. systemdnicht Ihre Benutzer verwenden .bashrcund $PATH.
Ja, es ist möglich, Programme beim Start unter Linux auszuführen, indem die Pfade zu ausführbaren Dateien definiert werden, rc.localdie sich entweder im Verzeichnis /etcoder befinden /etc/rc.d, z.
#!/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
Hinweis: Vergessen Sie nicht, die in der Dokumentation der Datei beschriebenen ausführbaren Rechte zuzuweisen Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure that this script will be executed during boot.
Durch Hinzufügen eines Eintrags in der Datei wird das Programm jedes Mal gestartet.
Sourav
2
Ja, bei jedem Neustart. Wenn Sie regelmäßig geplante Jobs (jeden Tag, jede Stunde, jede Woche oder eine ungerade Kombination) möchten, ist der cronPlaner Ihr Freund.
3
Suche nach Startup applicationsVerwendung der Home-Taste
Klicken Add
Geben Sie einen Namen ein, um die Anwendung aufzurufen (jeder Name reicht aus)
Im Startup command boxgeben Sie den Befehl
Klicken Sie auf OK(Ihr neuer Befehl sollte in der Liste angezeigt werden.)
Klicken Close
Testen Sie, indem Sie neu starten oder sich abmelden und wieder anmelden.
Jede Distribution verwendet eine eigene Bootstrap-Technik. Sie müssen sich daher die Dokumentation für Ihre Distribution ansehen. /etc/rc.local ist ein Ort, an dem Sie einige automatisierte Skripte platzieren können, aber es ist wirklich veraltet. Jetzt verwenden die meisten Linux-basierten Systeme Runlevel oder systemd-Bootstraping, sodass die meisten automatisch gestarteten Jobs feinstufig gesteuert werden können.
Ich bin froh, dass Sie eine Lösung gefunden haben. Fügen Sie Ihrer Antwort eine Zusammenfassung der Schritte hinzu, damit diese Antwort nützlicher ist als nur ein Link. Vielen Dank!
SLM
Ich suchte nach einer Möglichkeit, mein Trackpad beim Start zu automatisieren und auszuschalten. Der Befehl, den ich in Terminal eingegeben habe, war 'sudo modprobe -r psmouse'. Dadurch wird das Trackpad in der aktuellen Sitzung ausgeschaltet. Ich wollte dies beim Booten automatisieren. Ich recherchierte und schrieb ein Skript, indem ich die Datei /etc/rc.local modifizierte und 'sudo modprobe -r psmouse' hinzufügte. Geben Sie dann die folgenden Befehle vom Terminal aus: 'sudo mv / dateiname /etc/init.d/' 'sudo chmod + x /etc/init.d/dateiname' 'sudo update-rc.d dateiname defaults' Das Touchpad ist jetzt ausgeschaltet am Anfang.
Antworten:
So etwas wie Cron ?
Beachten Sie den
@reboot
EintragDies ist der flexibelste Ansatz und derjenige, der Windows "Geplante Aufgaben" am ähnlichsten ist (eigentlich besser).
quelle
/etc/cron.d
ihr programm oder rufen sie crontab auf, ohne dass sie es merken.Xorg-Autostart
Abgesehen von Startskripten auf Systemebene verfügt Ihre Desktop-Umgebung möglicherweise über eine eigene Methode zum automatischen Ausführen von Programmen. Der Ordner
.config/autostart
soll eine desktopneutrale Methode zum Definieren von Autorun-Einträgen sein./etc/xdg/autostart
ist für die systemweite Konfiguration. Details zur Spezifikation unter http://developer.gnome.org/autostart-spec/ .Für LXDE können auch Autostart-Einträge eingestellt werden
~/.config/lxsession/LXDE/autostart
.Es ist ein bisschen anders, wenn Sie Ihre Skripte ausführen müssen, nachdem das Netzwerk funktioniert hat. In diesem Fall sollten Sie die speziellen Post-Connect-Skripts überprüfen, die für Ihren Netzwerkmanager definiert werden können. Sowohl NetworkManager als auch wicd haben ihre eigenen Möglichkeiten, Autorun-Einträge nach dem Verbinden anzugeben. Wenn das Netzwerk über konfiguriert wurde
ifupdown
, können Post-Up-Skripte in den/etc/network/if-up.d/
Ordner gestellt werden. Ein besserer Ansatz für die Ausführung von Post-Connect-Skripten könnte jedoch systemd sein (für Systeme, die dies unterstützen, was die Mehrheit der modernen Distributionen darstellt).Autostart als Systemdienst
Wenn das, was Sie automatisch starten möchten, keine grafische App ist, für die ein Desktop erforderlich ist, vermeiden Sie am besten die Verwendung von Autostart-Funktionen, die von xorg oder Ihrer aktuellen Desktop-Umgebung bereitgestellt werden.
systemd
ist in vielen modernen Distributionen allgegenwärtig geworden und bietet viel Kontrolle und Flexibilität in Bezug auf die Art und Weise, wie Ihre Dienste gestartet werden und wie sie ausgeführt werden.Ich fasse einige Vorteile zusammen ( systemd kann viel mehr ):
User=myuser
Restart=on-failure|on-watchdog|on-abnormal|always
Type=simple|forking|oneshot|notify|dbus
Wants=network-online.target
siehe[Unit]
Abschnitt).Ein Beispieldienst, der einen Telegramm-Cli-Dämon startet. Legen Sie es in
/etc/systemd/system/tg.service
.Jetzt können Sie den Dienst für den Autostart aktivieren:
Starten Sie den Dienst:
Beenden Sie den Dienst:
Überprüfen Sie den Status:
Deaktivieren Sie den Dienst:
Um Ihnen zusätzliche Tipparbeit zu ersparen, können Sie
~/.bashrc
die Zeile hinzufügen undalias sc='sudo systemctl $*'
dann die obigen Befehle auf zsc start tg
. B. kürzen .Mehr Info:
quelle
Ja, es ist möglich, Programme beim Start unter Linux auszuführen, indem die Pfade zu ausführbaren Dateien definiert werden,
rc.local
die sich entweder im Verzeichnis/etc
oder befinden/etc/rc.d
, z.Hinweis: Vergessen Sie nicht, die in der Dokumentation der Datei beschriebenen ausführbaren Rechte zuzuweisen
Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure that this script will be executed during boot.
quelle
cron
Planer Ihr Freund.Startup applications
Verwendung der Home-TasteAdd
Startup command box
geben Sie den BefehlOK
(Ihr neuer Befehl sollte in der Liste angezeigt werden.)Close
Testen Sie, indem Sie neu starten oder sich abmelden und wieder anmelden.
Quelle: https://help.ubuntu.com/community/AddingProgramToSessionStartup
quelle
Jede Distribution verwendet eine eigene Bootstrap-Technik. Sie müssen sich daher die Dokumentation für Ihre Distribution ansehen. /etc/rc.local ist ein Ort, an dem Sie einige automatisierte Skripte platzieren können, aber es ist wirklich veraltet. Jetzt verwenden die meisten Linux-basierten Systeme Runlevel oder systemd-Bootstraping, sodass die meisten automatisch gestarteten Jobs feinstufig gesteuert werden können.
quelle
Ich habe meine Antwort hier gefunden: /programming/7221757/run-automatically-program-on-startup-under-linux-ubuntu Ich konnte eine Datei / ein Skript erstellen, um mein Trackpad auszuschalten, während ich in war meine Linux Ubuntu 12.10 Sitzung.
quelle