Kịch bản autostart service trên Ubuntu

Đây là lần đầu tiên mình viết tut trên diễn đàn pythonvietnam, có gì sai sót mong được chỉ giáo.
Các kịch bản service được lưu trong thư mục /etc/init.d/. Nhiệm vụ bây giờ là link nó vào các thư mục
/etc/rcRUNLEVEL.d/[SK]NNname.
RUNLEVEL : 0-6
SK : S - start, K - kill
NN: dãy số từ 00-99. Dãy số này để làm gì? Nó báo cho system biết nên start hay kill service nào trước, service nào sau. Ví dụ 2 file /etc/rc2.d/S20apache2 và /etc/rc2.d/S10rsyslog. Hệ thống sẽ khởi động dịch vụ syslog trước mới đến dịch vụ apache.
Tới đây chắc khá ổn rồi. Viết code thôi:

Mã (python):
Kiểm tra service đã được link tới thư mục /etc/rcLEVEL.d/
Mã (python):
Ở đây để đơn giản, nếu file đó tồn tại tôi sẽ xóa nó đi bằng function os.remove(). Đoạn script enable service:
Mã (python):
Mặc định start service level 2345 và stop level 016.
Mã (python):
Disable service: Mặc định xóa tất cả các link tới /etc/init.d/service_name
Mã (python):
Để thực hiện được script này cần thực thi với quyền root. Kiểm tra permission như sau:
Mã (python):

if os.geteuid() != 0:
        print 'Permission denied! Run as root.'
        sys.exit(0)
 

Đăng nhận xét

Mới hơn Cũ hơn