Ich versuche, eine einfache .sh-Datei zu starten und es heißtFailed at step EXEC spawning /etc/start.sh: No such file or directory
Inhalt dergnome.service
[Unit]
Description=Description for sample script goes here
After=network.target
RequiresMountsFor=/etc/
[Service]
Type=simple
ExecStart=/etc/start.sh
TimeoutStartSec=0
[Install]
WantedBy=default.target
Inhalt vonstart.sh
#!/bin/bash
echo "This is a sample script to test auto run during boot" > /root/Documents/script.txt
echo "The time the script run was --> `date`" >> /root/Documents/script.txt
Ausgabe vonsystemctl status gnome -l
● gnome.service - Description for sample script goes here
Loaded: loaded (/etc/systemd/system/gnome.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Thu 2019-06-06 18:25:32 CEST; 3s ago
Process: 11713 ExecStart=/etc/start.sh (code=exited, status=203/EXEC)
Main PID: 11713 (code=exited, status=203/EXEC)
Jun 06 18:25:32 some.server.adress systemd[1]: Started Description for sample script goes here.
Jun 06 18:25:32 some.server.adress systemd[11713]: Failed at step EXEC spawning /etc/start.sh: No such file or directory
Jun 06 18:25:32 some.server.adress systemd[1]: gnome.service: main process exited, code=exited, status=203/EXEC
Jun 06 18:25:32 some.server.adress systemd[1]: Unit gnome.service entered failed state.
Jun 06 18:25:32 some.server.adress systemd[1]: gnome.service failed.
Ausgabe vonls -l /etc/start.sh
-rwxr-xr-x 1 root root 179 Jun 6 18:19 /etc/start.sh
Ausgabe von/etc/start.sh
-bash: /etc/start.sh: /bin/bash^M: bad interpreter: No such file or directory
Antwort1
Ich habe Notepad++ unter Windows verwendet und musste daher
sed -i -e 's/\r$//' /etc/start.sh
um die Windows-Zeilenenden zu ersetzen.
Das ^M ist ein Wagenrücklaufzeichen. Linux verwendet das Zeilenvorschubzeichen, um das Ende einer Zeile zu markieren, während Windows die zweistellige Zeichenfolge CR LF verwendet. Ihre Datei hat Windows-Zeilenenden, was Linux verwirrt.
Antwort-Thread: https://askubuntu.com/questions/304999/kann-keine-sh-datei-ausführen-bin-bashm-schlechter-interpreter