สคริปต์ Ubuntu init.d ไม่ได้ถูกเรียกเมื่อเริ่มต้น


1

ฉันมีสคริปต์ใน ubuntu 9.04 ใน init.d ที่ฉันตั้งให้ทำงานเมื่อเริ่มต้นด้วย update-rc.d โดยใช้ update-rc.d init_test ค่าเริ่มต้น 99. symlink ทั้งหมดอยู่ที่นั่นและการอนุญาตปรากฏขึ้น ถูกต้อง

-rwxr-xr-x  1 root root   642 2010-10-28 16:44 init_test

mike@xxxxxxxxxx:~$ find /etc -name S99* | grep init_test
find: /etc/rc5.d/S99init_test
find: /etc/rc4.d/S99init_test
find: /etc/rc2.d/S99init_test
find: /etc/rc3.d/S99init_test

สคริปต์รันผ่านซอร์สและ. / โดยไม่มีปัญหาและทำงานอย่างถูกต้อง นี่คือที่มาของสคริปต์:

#!/bin/bash
### BEGIN INIT INFO
# Provides:          init test script
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO

start() {
    echo "hi"
    echo "start called" >> /tmp/test.log
    return
}

stop() {
    echo "Stopping"
}

echo "Script called" >> /tmp/test.log

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    *)
        echo "Usage:  {start|stop|restart}"
        exit 1
        ;;
esac
exit $?

เมื่อเครื่องเริ่มฉันไม่เห็น "สคริปต์ชื่อ" หรือ "เริ่มเรียก" ใน test.log เลย มีอะไรชัดเจนหรือไม่ที่ฉันล้อเล่น


exitด้วยตัวเองให้$?ฟรี
Dennis Williamson

คำตอบ:


0

ฉันคิดออกว่าเกิดอะไรขึ้น มีสคริปต์ที่ไม่เกี่ยวข้องอย่างสมบูรณ์ซึ่งได้รับการบล็อกเมื่อเริ่มต้นเนื่องจากมีการขอกดปุ่มจากผู้ใช้ซึ่งดูเหมือนว่าจะเริ่มต้นสคริปต์อื่น ๆ ทั้งหมด มีวิธีแก้ไขปัญหาเช่นนั้นเช่นการบันทึกสคริปต์ init.d ซึ่งทำงานได้หรือไม่


2
หากคุณใส่set -xเชลล์สคริปต์มันจะพิมพ์การติดตามของทุกคำสั่งที่ตามมาในข้อผิดพลาดมาตรฐาน
Gilles
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.