Create Bash-script service for Debian

ในบางครั้ง เราต้องการให้โปรแกรมที่เราเขียนขึ้นรันเมื่อเปิดเครื่องคอมพิวเตอร์ขึ้นมา และใน Debian นั้นสามารถทำได้หลายวิธี ไม่ว่าจะเป็นการสั่งให้เรียกโปรแกรมจากไฟล์ crontab หรือ rc.local ซึ่งในวันนี้จะเสนอวิธีที่นำโปรแกรมมาสร้างเป็น Bash-script แล้วนำไปผูกกับ service ของระบบปฎิบัติการ Debian

การสร้าง Bash-script แล้วจึงนำไปถูกกับ Service มีข้อดีคือ เราสามารถสั่งเปิดปิดโปรแกรมของเรา รวมถึง restart ได้ผ่านทางระบบ service ของ Debian ได้นั่นเอง ซึ่งนี่คือตัวอย่างของวิธีการดังกล่าว PiCam-Setup เป็นการสร้าง Service ในการเปิดกล้องให้กับ Raspberry Pi โดยใช้ไลบรารี่ mpeg-streamer

มาเริ่มกันเลยดีกว่า อย่างแรกที่ต้องมีคือโปรแกรมที่อยากให้ทำงานก่อนในที่ใช้โปรแกรม my_program.py จากนั้นเขียนไฟล์ Bash-script ดังนี้

#!/bin/bash
# /etc/init.d/MyService.sh

function startService()
{
    ./my_program.py &
}

case "$1" in
    start)
        echo "Starting my_program.py"
        startService
        ;;
    stop)
        echo "Stopping my_program.py"
        killall my_program.py
        ;;
    status)
        echo "Not supported yet"
        ;;
    restart)
        echo "Restarting my_program.py"
        killall my_program.py
        start
        sleep 2
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
        ;;
esac
exit 0

จากนั้น เราต้องก็อปปี้สคริปข้างบนไปไว้ /etc/init.d/ จากนั้นก้ update-rc.d ตามคำสั่งดังนี้

# cp MyService.sh /etc/init.d/
# chmod +x /etc/init.d/MyService.sh
# update-rc.d MyService.sh defaults

เพียงเท่านี้เราก้จะได้เซอร์วิสที่เป็นของเราเองแล้วครับ

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s