
Ich habe eine startup_test.sh mit folgendem Inhalt erstellt
cd /home/xyz/Desktop/
gnome-terminal -e "bash -c ./efg"
Der Ordner #desktop enthält eine ausführbare Datei mit dem Namen efg
.
Wenn ich es gnome-terminal -e "bash -c ./efg"
im Terminal ausführe, funktioniert es einwandfrei. Öffnet ein neues Terminal und das Programm efg
läuft korrekt. Ich möchte, dass dieses Skript startup_test.sh
nach dem Hochfahren/Anmelden ausgeführt wird.
Ich befinde mich in einer Anmeldung mit Root-Rechten.
chmod +x startup_test.sh
cp startup_test.sh /usr/sbin/
Mein startup_test.service
hat folgenden Inhalt:
[Unit]
Description=ABC
[Install]
WantedBy=multi-user.target
[Service]
ExecStart=/usr/sbin/startup_test.sh
WorkingDirectory=/home/xyz/Desktop/startup
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=%n
startup_test.service
wird im /etc/systemd/system
Ordner abgelegt.
Nun der Befehl
systemctl daemon-reload
wird ausgeführt. Keine Ausgabe.
systemctl enable startup_test.service
Jetzt gibt der Befehl die folgende Ausgabe aus:
Failed to enable unit : Invalid argument
Was ist die Ursache für die obige Ausgabe?
der Befehl systemctl start startup_test.service
gibt keine Ausgabe zurück.
Der Befehl systemctl status startup_test.service
gibt an:
startup_test.service - ABC
Loaded: loaded (/etc/systemd/system/startup_test.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Mon 2024-02-19 12:09:20 IST; 2min 55s ago
Process: 32531 ExecStart=/usr/sbin/startup_test.sh (code=exited, status=203/EXEC)
Main PID: 32531 (code=exited, status=203/EXEC)
Feb 19 12:09:20 localhost.localdomain systemd[1]: Started ABC.
Feb 19 12:09:20 localhost.localdomain systemd[1]: startup_test.service: Main process exited, code=exited, status=203/EXEC
Feb 19 12:09:20 localhost.localdomain systemd[1]: startup_test.service: Failed with result 'exit-code'.
Das Betriebssystem ist Redhat 8.2