สคริปต์เริ่มทำงานของ linux ไม่ได้เรียกใช้งานสคริปต์ในไดเรกทอรีหลักของผู้ใช้


0

ฉันต้องการสคริปต์บนราสเบอร์รี่ pi ของฉันเพื่อทำงานเมื่อระบบบูท นั่นเป็นเหตุผลที่ฉันได้สร้างสคริปต์ภายใน /etc/init.d ที่เชื่อมโยงใน /etc/rc2.d

นี่คือสคริปต์ภายใน init.d:


#! /bin/sh
### BEGIN INIT INFO
# Provides:          Scriptname
# Required-Start:
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Kurze Beschreibung
# Description:       Bechreibung
### END INIT INFO



#Switch case fuer den ersten Parameter
case "$1" in
    start)
        #Aktion wenn start aufgerufen wird
        /home/thomas/applications/autostart/autostart.sh
        ;;

    stop)
        #Aktion wenn stop aufgerufen wird
        echo "nope"
        ;;

    restart)
        #Aktion wenn restart aufgerufen wird
        echo "nope"
        ;;
        *)
        #Default Aktion wenn start|stop|restart nicht passen
        echo "(start|stop|restart)"
        ;;
esac

exit 0

และนี่คือเนื้อหาของ/home/thomas/applications/autostart/autostart.sh:


#! /bin/sh
touch /home/thomas/kater

เมื่อฉันเปลี่ยนคำสั่งเริ่มต้นภายในสคริปต์ใน /etc/init.d เป็นบรรทัดต่อไปนี้คำสั่ง touch จะถูกเรียกใช้งาน:


    start)
        #Aktion wenn start aufgerufen wird
        touch /home/thomas/kater
        ;;

เหตุใดจึงไม่เรียกใช้งานสคริปต์แยกกัน

ขอบคุณล่วงหน้า McFarlane

คำตอบ:


1

สมมติว่าสิ่งที่คุณแสดงเป็นสิ่งที่คุณมีสคริปต์จะไม่ทำงานเพราะคุณมีข้อผิดพลาดการจัดรูปแบบ ไม่ควรมีช่องว่างระหว่าง!#และ/bin/shในบรรทัด shebang:

#!/bin/sh
touch /home/thomas/kater

คุณพูดถูก แต่ถึงแม้จะไม่มีที่ว่างคำสั่ง touch ก็ไม่ได้ทำงาน
McFarlane

@McFarlane สามารถเรียกใช้สคริปต์ได้หรือไม่ โปรดแก้ไขคำถามของคุณและเพิ่มผลลัพธ์ของls -l /home/thomas/applications/autostart/autostart.sh
terdon

ปัญหาคือเส้น #! / bin / sh ผิด ฉันคิดว่ามันผิดในสองไฟล์นั่นเป็นเหตุผลว่าทำไมมันไม่ทำงานในครั้งแรก
McFarlane
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.