Đây là đoạn trích từ http: //www.debian-adftime.org/articles/28 dường như trả lời câu hỏi của bạn.
Lưu ý: Trong đoạn mã ví dụ bên dưới, chỉ cần thêm một cuộc gọi đến phần " start)
" để thực sự khởi chạy chương trình của bạn. Bạn có thể kiểm tra chức năng của tập lệnh mà không cần khởi động lại hệ thống: gọi nó với đường dẫn đầy đủ và cung cấp cho nó một tham số " start
" hoặc " stop
"
Đây là:
Debian sử dụng hệ thống init giống như Sys-V để thực thi các lệnh khi hệ thống runlevel thay đổi - ví dụ như lúc khởi động và tắt máy.
Nếu bạn muốn thêm một dịch vụ mới để bắt đầu khi máy khởi động, bạn nên thêm tập lệnh cần thiết vào thư mục /etc/init.d/
. Nhiều tập lệnh đã có trong thư mục đó sẽ cho bạn một ví dụ về loại việc bạn có thể làm.
Đây là một đoạn script rất đơn giản được chia thành hai phần, mã luôn chạy và mã chạy khi được gọi với "start" hoặc "stop".
#! /bin/sh
# /etc/init.d/blah
#
# Some things that run always
touch /var/lock/blah
# Carry out specific functions when asked to by the system
case "$1" in
start)
echo "Starting script blah "
echo "Could do more here"
;;
stop)
echo "Stopping script blah"
echo "Could do more here"
;;
*)
echo "Usage: /etc/init.d/blah {start|stop}"
exit 1
;;
esac
exit 0
Khi bạn đã lưu tệp của mình vào đúng vị trí, hãy đảm bảo rằng tệp đó có thể thực thi được bằng cách chạy " chmod 755 /etc/init.d/blah
".
Sau đó, bạn cần thêm các liên kết tượng trưng thích hợp để làm cho tập lệnh được thực thi khi hệ thống ngừng hoạt động hoặc xuất hiện.
Cách đơn giản nhất để thực hiện việc này là sử dụng lệnh dành riêng cho Debian update-rc.d
:
root@skx:~# update-rc.d blah defaults
Adding system startup for /etc/init.d/blah ...
/etc/rc0.d/K20blah -> ../init.d/blah
/etc/rc1.d/K20blah -> ../init.d/blah
/etc/rc6.d/K20blah -> ../init.d/blah
/etc/rc2.d/S20blah -> ../init.d/blah
/etc/rc3.d/S20blah -> ../init.d/blah
/etc/rc4.d/S20blah -> ../init.d/blah
/etc/rc5.d/S20blah -> ../init.d/blah
start-stop-daemon
xử lý nó tốt hơn (mặc dù nó thích hợp hơn với chính chương trình). Bạn đang sử dụng bản phân phối nào? Ngoài các loại MIME trên máy tính để bàn, các phần mở rộng tệp là vô nghĩa trong * nix và ưu tiên của nó là các tệp thực thi không có.