Ausführen eines Befehls beim Start

Ausführen eines Befehls beim Start

Ich bin vor kurzem auf „erinnern" in Linux. Es gefiel mir fast sofort, aber damit meine Erinnerungen angezeigt wurden, musste ich „remind“ im Daemon-Modus ausführen. Das ging ganz einfach mit dem folgenden Befehl:

remind -z -k'gmessage %s &' /home/googie/.reminders &

Es wäre für mich einfach zu blöd, den „Remind“-Daemon bei jedem Hochfahren meines Computers manuell zu starten (jemand müsste mich daran erinnern!), also dachte ich, ich lasse ihn beim Hochfahren automatisch laufen. Ich dachte, das wäre ziemlich einfach, aber ich erlebte eine Überraschung.

Ich habe Folgendes gemacht (in dieser Reihenfolge):

  1. Habe ein Skript erstellt (mit Start-, Stopp- und Neustart-Fällen), es in /etc/init.d platziert, „update-rc.d“ ausgeführt, um einige Links für bestimmte Runlevel zu erstellen, neu gestartet – kein Glück
  2. Erstellte eine 'remind.conf'-Datei und platzierte sie in /etc/init (mit Bezug auf 'http://upstart.ubuntu.com/getting-started.html'), neu gestartet --- immer noch kein Glück
  3. Habe '/etc/rc.local' geöffnet, den Befehl zum Starten des 'remind'-Daemons direkt vor 'exit 0' platziert, neu gestartet --- immer noch kein Glück
  4. Crontab geöffnet (sudo crontab -e), '@reboot' geschrieben, gefolgt vom Befehl zum Starten des 'remind'-Daemons in der letzten Zeile, neu gestartet – immer noch kein Glück
  5. Habe 'System->Einstellungen->Startprogramme' geöffnet, ein neues Startprogramm mit dem Befehl zum Starten des 'Remind'-Daemons hinzugefügt, neu gestartet --- immer noch kein Erfolg
  6. Habe ein Skript in meinem Home-Verzeichnis erstellt, den Befehl zum Starten des ‚Remind‘-Daemons in das Skript eingefügt, dieses Skript von ‚/etc/rc.local‘ aus aufgerufen und neu gestartet – immer noch kein Glück
  7. Habe das Skript in meinem Home-Verzeichnis nach '@reboot' in crontab aufgerufen, neu gestartet --- immer noch kein Glück
  8. Habe das Skript in meinem Home-Verzeichnis über „System->Einstellungen->Startanwendungen“ aufgerufen – hat endlich funktioniert und der „Remind“-Daemon läuft jetzt!!

So nun zu meinen 3 Fragen:

  1. Ist es unter Linux wirklich so kompliziert, beim Start etwas auszuführen, oder liegt das einfach an meinem mangelnden Wissen?
  2. War es überhaupt ratsam, die Schritte 1 und 2 auszuprobieren? Ich denke, diese werden verwendet, um etwas zu einem Dienst zu machen. Ist der „Remind“-Daemon nicht auch ein Dienst?
  3. Warum hat der Ansatz „/etc/rc.local“ oder „crontab“ nicht funktioniert? Gibt es Protokolle, die ich überprüfen könnte, um festzustellen, was schief läuft?

(ich würde mich auch über alle relevanten Referenzen zum Lesen freuen)

Antwort1

1) Ich fürchte, Letzteres ist der Fall. Aber fühlen Sie sich nicht schlecht, die meisten Leute stolpern darüber.

2+3) Die einzigen, die eine Chance hätten zu funktionieren, sind 5 und 8. Die Startskripte und Cron haben keine Ahnung von Ihrer Anmeldesitzung, also gibt es keine Möglichkeit, dass sie in die richtige Richtung zeigen könnten remind. gmessageUnd 5 hat nicht funktioniert, weil das Et-Zeichen am Ende eine Funktion der Shell ist, nicht des Befehls. Sie brauchen es wahrscheinlich nicht einmal, wenn der Befehl als Startanwendung ausgeführt wird.

Antwort2

Sie können diese Zeile in das Startskript ~/.xinitrcjedes X Window-Desktops einfügen.

verwandte Informationen