쉘 스크립트 실행을 위한 간단한 시스템 서비스

쉘 스크립트 실행을 위한 간단한 시스템 서비스

간단한 .sh 파일을 시작하려고 하는데 다음과 같이 표시됩니다.Failed at step EXEC spawning /etc/start.sh: No such file or directory

내용gnome.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

의 내용start.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

출력systemctl 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.

출력ls -l /etc/start.sh

-rwxr-xr-x 1 root root 179 Jun  6 18:19 /etc/start.sh

출력/etc/start.sh

-bash: /etc/start.sh: /bin/bash^M: bad interpreter: No such file or directory

답변1

Windows에서 Notepad++를 사용하고 있었기 때문에 다음을 실행해야 했습니다.

sed -i -e 's/\r$//' /etc/start.sh

Windows 줄 끝을 바꾸려면.

^M은 캐리지 리턴 문자입니다. Linux는 줄 끝을 표시하기 위해 줄 바꿈 문자를 사용하는 반면, Windows는 두 문자 시퀀스 CR LF를 사용합니다. 파일에 Windows 줄 끝이 있어 Linux를 혼란스럽게 합니다.

답변 스레드: https://askubuntu.com/questions/304999/not-able-to-execute-a-sh-file-bin-bashm-bad-interpreter

관련 정보