Câu trả lời:
Trên Debian, các tập lệnh khởi động và tắt ứng dụng và dịch vụ nên được đặt vào /etc/init.d/
.
Debian cung cấp một tập lệnh mẫu /etc/init.d/skeleton
mà bạn có thể sửa đổi theo sở thích của mình cho ứng dụng cụ thể của bạn.
Khi đã có, hãy gọi:
# update-rc.d YOURAPP defaults
Để có Debian thêm các /etc/rc?.d/
liên kết tượng trưng cho bạn.
Nếu bạn thích một menu hoặc giao diện đồ họa, hãy xem sysv-rc-conf
hoặc ksysv
gói.
Bạn có thể gọi tập lệnh của mình từ /etc/rc.local , trước dòng có thông báo thoát 0
Đối với việc tắt ứng dụng của bạn, tôi khuyên bạn nên đặt một tập lệnh trong /etc/rc0.d . Bạn cần đặt tên bằng chữ hoa K và sau đó là số có 2 chữ số chỉ định thứ tự các tập lệnh này được chạy và sau đó là tên. Nó sẽ được gọi với một tham số "dừng", nhưng bạn có thể bỏ qua điều này cho một tập lệnh dừng đơn giản.
Đối với khởi nghiệp có một cái nhìn về điều này .
Để tắt máy, hãy tạo một liên kết / sao chép tập lệnh của bạn vào một trong các thư mục /etc/rcX.d trong đó X là runlevel mà bạn muốn nó thực thi tại. Tôi tin rằng 0 là runlevel cho Debian.
Đơn giản nhất là sửa đổi các tập lệnh hiện có, hoạt động trong hệ thống của tôi, được sử dụng cho âm thanh :)
/etc/init.d/rc.local
, thêm sh của bạn vào cuối tập tin, trước: (nó sẽ thực thi nó ngay trước khi đăng nhập "màn hình")/etc/init.d/halt
, thêm sh của bạn vào đầu tệp, ngay sau khi nhận xét ban đầu (nó sẽ được thực thi trước lệnh tắt máy thực tế, được gọi bởi tệp script này/etc/init.d/reboot
Kể từ Debian Jessie, init
chương trình cũ đã được thay thế bởi systemd
!
Kiểm tra nó ra cho mình. Chạy: ls -l /sbin/init
và xem những gì nó chỉ vào. Ngày nay, nó trỏ đến systemd
( /sbin/init -> /lib/systemd/systemd
), một chương trình khởi tạo mới hơn và tốt hơn.
VÌ VẬY CHOSEN VÀ TRẢ LỜI KHÁC TẠI ĐÂY BÂY GIỜ BÂY GIỜ !!!
* Mặc dù bạn vẫn có thể cài đặt các tập lệnh theo cách cũ với các công cụ System-V, nhưng nói chung không phải là một ý tưởng hay.
man systemd.service
nói:*
Nếu một dịch vụ được yêu cầu dưới một tên nhất định nhưng không tìm thấy tệp cấu hình đơn vị nào, systemd sẽ tìm tập lệnh init SysV có cùng tên ... và tự động tạo một đơn vị dịch vụ từ tập lệnh đó. Điều này rất hữu ích để tương thích với SysV. Lưu ý rằng khả năng tương thích này khá toàn diện nhưng không phải là 100%.
Nó dễ hơn bạn nghĩ. (-:
Đây là phương pháp mới và được ưa thích để cài đặt các chương trình khởi động hoặc tắt máy.
Với systemd
bạn đầu tiên muốn tạo một tập tin đơn vị . Một tập tin đơn vị chủ yếu là khai báo, không phải mã.
Sau đó, bạn sẽ sử dụng systemctl
lệnh để kích hoạt hoặc bắt đầu đơn vị đó.
systemd
chẳng hạn như rất nhiều công việc cho bạn, làm cho nó dễ dàng, chẳng hạn, để một chương trình quan trọng tự động khởi động lại nếu nó gặp sự cố hoặc bị giết. Ngoài ra, nó tắt chương trình của bạn ở đâu và khi nào nó nên mặc định mà không có công việc phụ từ phía bạn.
Bắt đầu tìm hiểu về systemd
đây:
Từ Debian và ở những nơi khác và vv và vv .
Trang con người để bắt đầu với:
man systemd.unit
- Giới thiệu về tệp đơn vị nói chung
man systemd.service
- Giới thiệu về tệp đơn vị dịch vụ, ví dụ: trình nền và các chương trình chạy đơn.
man systemctl
- Giao diện người dùng dòng lệnh
man journalctl
- Xem nhật ký của những gì systemd đã làm
man systemd
- Về chính chương trình init
Ngoài ra còn có một loạt các loại đơn vị khác, ví dụ
man systemd.target
- cho các nhóm và các mục tiêu được đồng bộ hóa phổ biến.
Khi bạn đã tiêu hóa những điều cơ bản ở trên, sau đó man -k systemd
tìm hiểu thêm về các trang hướng dẫn khác.
Dù bạn làm gì, trên Debian không sử dụng bất kỳ thứ nào trong số này :
update-rc.d
- cài đặt và xóa liên kết tập lệnh init kiểu System-Vsysv-rc-conf
- Cấu hình cấp chạy cho SysV như liên kết init scriptrunlevel
- In runlevel SysV trước và hiện tạiBUM
- B oot U p M anager - trình chỉnh sửa runlevel đồ họasystemadm
- Giao diện đồ họa cho hệ thống quản lý dịch vụ và hệ thống Tệp đơn vị này khởi động trình nền NoIP.com khi tôi khởi động và tắt nó khi tôi tắt máy.
Đôi khi, daemon này gửi địa chỉ IP hiện tại của tôi để cập nhật cơ sở dữ liệu của nhà cung cấp DDNS ( D ynamic DNS ( D omain N ame S erver)), do đó giữ cho tên miền của tôi trỏ vào máy tính của tôi bất cứ nơi nào nó di chuyển đến.
Tệp đơn vị này nằm trên hệ thống của tôi trong tệp cài đặt này: /etc/systemd/system/noip2.service
Đây là những gì trong tập tin đơn vị:
# Comments can only go at the beginning of the line!
[Unit]
Description=Start the NoIP IP update daemon. This runs every 30 minutes and reports our current IP to NoIP.com to update Love2d.ddns.net.
Documentation=https://no-ip.com/
Documentation=file:///nobak/Installers/NoIP/noip-2.1.9-1/README.FIRST
[Service]
# 'forking' because process returns after starting daemon (traditional unix daemon).
Type=forking
# This program runs and returns, leaving the running daemon
ExecStart=/usr/local/bin/noip2
# Be in no hurry to start this. Max nice is +19.
Nice=15
# If it dies for any reason, then restart it
Restart=always
[Install]
# Installs a hook to use this unit file when the system boots or shuts down
WantedBy=multi-user.target
Chạy thủ công một tệp đơn vị, (ví dụ để kiểm tra):
$ sudo systemctl start noip2
. $ sudo systemctl restart noip2
. $ sudo systemctl stop noip2
. Cấu hình hệ thống để tự động chạy tệp đơn vị khi khởi động hoặc tắt:
$ sudo systemctl enable noip2
. $ sudo systemctl disable noip2
.Xem nhật kí
$ sudo journalctl -u noip2