시작 시 Python 스크립트를 실행할 수 없습니다.

시작 시 Python 스크립트를 실행할 수 없습니다.

Fedora에서 내 /etc/rc.local모습은 다음과 같습니다.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi


/usr/bin/screen -dmS wixel python "/home/myuser/python-usb-wixel-xdrip/python-usb-wixel.py"
exit 0

하지만 시작하고 나서 sudo screen -r wixel제가 받은 것은There is no screen to be resumed matching wixel.

/usr/bin/screen -dmS wixel python "/home/myuser/python-usb-wixel-xdrip/python-usb-wixel.py"나를 시작하는 스크립트를 실행 하고 sudo screen -r wixel그 출력을 추적합니다.

부팅 시 스크립트가 시작되지 않는 이유는 무엇입니까?

나는 노력했다sudo chmod a+rx /etc/rc.local

답변1

귀하의 설명에는 명시되어 있지 않지만 여기에서 Fedora 태그를 찾았습니다. Fedora는 systemd한동안 사용 가능했으며 , 이를 사용하려면 rc.local 서비스를 활성화해야 합니다.

/usr/lib/systemd/system/rc-local.service자세한 내용은 systemd 서비스를 확인하세요 .

스크립트는 /etc/rc.d/rc.local( ExecStart대신 /etc/rc.local)으로 이동해야 합니다. 이 파일은 패키지에서 제공되어야 하는데 initscripts내 시스템에서 찾을 수 없습니다. 두려워하지 말고 만들어 보세요. 그러나 올바른 권한과 shebang(예 #!/bin/bash: )을 설정하는 것을 잊지 마십시오. 시작하고 활성화해야 합니다 rc-local.service.

이것은 당신에게 도움이 될 것입니다:

# as root
mv /etc/rc.local /etc/rc.d/rc.local
sed -i '1i #!/bin/bash' /etc/rc.d/rc.local
chmod 0755 /etc/rc.d/rc.local
# this run the script immediately (!)
systemctl start rc-local.service
# this enables service to run it within boot
systemctl enable rc-local.service

systemd매개변수를 사용하여 스크립트를 실행합니다 start. 아무 것도 깨지지 않지만 스크립트에서 사용할 수 있습니다.

이것은 귀하의 문제에 매우 좋습니다 rc.local. 어쨌든 더 나은 해결책은 새로운 시스템 서비스를 추가하는 것입니다. 인터넷에 매뉴얼이 몇 개 있기 때문에 거기에 글을 쓰기에는 너무 게으릅니다. :) 예를 들면 다음과 같습니다.http://www.linuxveda.com/2014/04/28/autostart-process-gnu-screen-systemd/

관련 정보