xfce4-clipman erfordert Zugriff auf Ihr Xorg-Display (das X11-Grafiksystem) - nicht nur, weil es sich tatsächlich um eine grafische App handelt, sondern auch, weil es ein Zwischenablage-Manager ist und X11 dies ebenfalls abdeckt.
Das (Haupt-) Problem: Ihr Xorg-Display ist beim Start noch nicht verfügbar. Es wird beim Anmelden gestartet, lange nachdem der Systemstart abgeschlossen ist. Daher ist es nicht möglich, xfce4-clipman "beim Start" zu starten. Sie möchten die App auch beim Anmelden starten.
(Linux gebaut mehrere Benutzer zu unterstützen, die sich anmelden können und melden Sie sich jederzeit aus - jeder Benutzer erhält eine brandneue Kopie von Xorg läuft, und der Login - Bildschirm selbst bekommt man auch so Dienste nicht auf Xorg zur Verfügung stehen zählen kann. Bei alle. )
Apps beim Anmelden starten
Die meisten Desktop-Umgebungen, einschließlich Xfce, können "Login" -Aufgaben über *.desktop
Dateien starten (auf diese Weise werden verschiedene Xfce-Komponenten gestartet).
Sie sind /etc/xdg/autostart/
für globale Dienste und ~/.config/autostart/
für persönliche Dienste bestimmt . Nachdem Sie eine erstellt haben, ist sie standardmäßig aktiviert, kann aber weiterhin über deaktiviert werden xfce4-session-settings
.
Tatsächlich installiert sogar xfce4-clipman seine eigene Autostart-Datei in / etc / xdg / autostart - diese wird benannt xfce4-clipman-plugin-autostart.desktop
. Es sollte automatisch funktionieren, solange Sie Xfce4 verwenden (aufgrund der OnlyShowIn=XFCE
Leitung).
Wenn auf Ihrem System diese Datei nicht vorhanden ist oder Sie xfce4-clipman in einer Nicht-Xfce-Desktopumgebung verwenden möchten, können Sie eine neue erstellen. Autostart- .desktop
Dateien sehen im Allgemeinen so aus:
[Desktop Eintrag] Typ = Anwendung Name = Zwischenablage-Manager Exec = xfce4-clipman Terminal = falsch
Nicht-CLI-Programme manuell starten
Viele Desktop-Umgebungen verfügen über ein Dialogfeld "Ausführen" AltF2, in dem Sie Programme ausführen können, ohne ein Terminal zu belegen.
Verschiedene Methoden, um dasselbe von einem Terminal aus zu tun, sind:
(setsid xfce4-clipman 2>/dev/null &)
(xfce4-clipman &)
nohup xfce4-clipman &
xfce4-clipman & disown
- und so weiter.
Andere Probleme mit Ihrem init.d-Skript
In Situationen, in denen Systemdienste angemessen sind, sollten Sie bedenken, dass Dateien in /etc/init.d nicht nur einfache Skripts sind, sondern auch beim Herunterfahren ausgeführt werden und Unterbefehle wie "stop" oder "restart" akzeptieren müssen. Wenn das System aufruft /etc/init.d/your_service stop
, muss das Initscript den Dienst tatsächlich stoppen - nicht erneut starten!
Sie haben die Frage mit systemd markiert. Warum sollten Sie sich also nicht die Mühe machen, *.service
stattdessen eine systemd- Datei zu schreiben ? Während "richtige" init.d-Skripts mehrere Bildschirme füllen können, sind systemd .services oft weniger als ein Dutzend Zeilen.
Was noch wichtiger ist: Es gibt viele Dutzende von Diensten, die zu verschiedenen Zeitpunkten starten. In späteren Stadien stehen einige Einrichtungen zur Verfügung, die in früheren Stufen nicht vorhanden sind. (Zum Beispiel Networking.)
Wenn Ihr Initscript die Bestellanforderungen nicht explizit angibt ("muss vor Y, aber nach Z" ausgeführt werden), wird es vom Betriebssystem in einer unvorhersehbaren Phase parallel zu allen anderen ausgeführt. Wenn Sie viel Glück haben, wird es im richtigen Moment laufen - aber meistens wird es zu früh laufen, damit etwas funktioniert.
In systemeigenen Einheitendateien wird die Reihenfolge mithilfe von Before=
und After=
Parametern angegeben. (Es empfiehlt sich, Abhängigkeiten mit Requires=
oder anzugeben Wants=
.) Inzwischen verwenden init.d-Skripts (sowohl mit SysVinit als auch mit systemd) einen speziellen Kommentarblock ### BEGIN INIT INFO
, der mit Parametern wie Required-Start:
und markiert ist Should-Start:
.