Friday, November 14, 2008

สร้าง script คำสั่งทำงานเมื่อบูตระบบ Ubuntu

How to build boot scripts for Ubuntu.

  • Enviroment : Ubuntu 8.04
  • Script รันตอนบูตระบบก็ เช่น MySQL , Apache หรือ Services ต่างๆ
  • คือ มันจะรันตอนบูตระบบให้เลยเราไม่ต้องมานั่ง start มันเอง

Example : สำหรับทำ ARP Static เมื่อบูตระบบใหม่ทุกครั้ง

1. เปิด gedit หรือ editor สักตัวที่เราใช้

2. สร้างไฟล์สคริป โดยบรรทัดแรกในไฟล์ ต้องขึ้นต้นด้วย #! /bin/sh และ จบคำสั่งด้วยการขึ้นบรรทัดใหม่ หรือ เครื่องหมาย semi-colon ";"

#! /bin/sh

# any command
arp -s 192.168.1.1 00:00:00:11:11:11

3. ทำการบันทึกไฟล์สคริป ในที่นี้จะตั้งชื่อไฟล์เป็น myscriptd แล้วกัน (จะใส่ .sh ด้วยก็ได้)

4. นำไฟล์ myscriptd ไปวางไว้ที่ /etc/init.d/

5. เปลี่ยน permission ให้ execute ไฟล์ได้

$ sudo chmod +x /etc/init.d/myscriptd
or
$ sudo chmod 755 /etc/init.d/
myscriptd

5. จากนั้นให้เราพิมพ์คำสั่งดังนี้ สำหรับสั่งให้สคริปทำงานตอนบูตระบบ

$ sudo update-rc.d myscriptd defaults
or

$ sudo update-rc.d myscriptd start 90 2 3 4 5 .

6. ถ้าเราต้องการยกเลิกคำสั่งในสคริป arpstaticd ตอนบูตระบบ

$ sudo update-rc.d -f myscriptd remove

7. ดูออฟชั่น update-rc.d ด้วยคำสั่ง

$ man update-rc.d

  • มันจะเห็น script เราเหมือน service ตัวอื่นๆ เราสามารถสั่ง /etc/init.d/myscriptd stop ซึ่งเราสามารถประยุกค์ใช้ ทำ services ของเราได้
  • ถ้าเราทำตามขั้นตอนแล้ว คำสั่งไม่ทำงาน เราสามารถทำได้อีกวิธีคือเพิ่ม /etc/init.d/myscriptd startarp -s 192.168.1.1 00:00:00:11:11:11 ลงไปในไฟล์ /etc/init.d/rc.local
  • หรือ นำคำสั่งไปฝากกับ shell ของ services ตัวอื่นๆ ก็น่าจะได้นะคิดว่า
  • /etc/init.d/rc.local จะรันเมื่อบูตระบบ (ubuntu นะ) แต่ปกติจะใช้ตัวนี้นะ /etc/rc.local แต่ทำไมใน ubuntu จะรันเมื่อปิดระบบซะงั้น ไม่แน่ใจ
  • เจอแหละ เค้าบอกให้วางคำสั่งใส่ใน /etc/rc.local ใส่ก่อนคำสั่ง exit 0 อ้างอิง ubuntu 8.10
  • แต่ก่อน หรือ distro ประมาณ Redhat หรือ Ubuntu รุ่นเก่าอ่ะ เคยเพิ่มคำสั่งใน /etc/rc.local ก็รันคำสั่งได้นะตอนบูตระบบอ่ะ แต่ทำไม ubuntu ใช้ได้เหมือนกันมั้ยหว่า
  • ถ้าเป็น windows เราก็ทำเป็น .bat แล้วก็นำไปวางที่ StartUp แต่คำสั่งจะทำงานเฉพาะ ตอนเรา logon เข้าระบบแล้วอ่ะ ถ้าทำแบบนี้ แก้โดยใช้ schedule task ของ windows ไง หรือไม่ก็ทำเป็น service ซะเลย
อ้างอิงข้อมูล
  1. debian.org
  2. ubuntuforums.org
  3. linuxlane.com
  4. ubuntu.wordpress.com
  5. debuntu.org
  6. debian-administrator.org
  7. การเขียน shell script
  8. golfreeze.212cafe.com


No comments:

Post a Comment

Popular Posts