Câu hỏi Làm thế nào tôi có thể cấu hình một dịch vụ để chạy lúc khởi động


Tôi có một daemon chạy tốt nếu tôi bắt đầu bằng tay với service chỉ huy:

ricardo@ricardo-laptop:~$ sudo service minidlna start                   
 * Starting minidlna minidlna                                                              [ OK ] 

nhưng nó không được cấu hình để tự động khởi động khi PC khởi động lại.

Làm thế nào tôi có thể cấu hình nó để bắt đầu tự động, ngay cả khi không có ai đăng nhập vào PC?


209
2017-10-25 13:46


gốc


@ user154721 Bạn đã đưa ra các đối số update-rc.d để thực hiện công việc tự khởi động? Tôi đã thử nhiều lựa chọn khác nhau nhưng chưa có may mắn. - BennyTheBen


Các câu trả lời:


sudo update-rc.d minidlna defaults

Điều này sẽ thêm dịch vụ vào hệ thống khởi động tự động. Nhưng nếu bạn nhận được:

System start/stop links for /etc/init.d/minidlna already exist.

Làm lệnh

sudo update-rc.d minidlna enable

P.S.: Để biết thêm chi tiết, hãy xem trang hướng dẫn cho update-rc.d bằng cách gõ lệnh man update-rc.d


241
2017-10-25 14:09



cảm ơn, nhưng nếu tôi nhận được kết quả này khi chạy lệnh đó ?: System start/stop links for /etc/init.d/minidlna already exist. - Ricardo Reyes
Tôi grep'd cho minidlna trong tất cả các tập tin tại / var / log và không thể tìm thấy bất kỳ đề cập đến các dịch vụ lúc khởi động - Ricardo Reyes
nếu minidlna không ghi vào bất kỳ logfile bạn sẽ không tìm thấy nó ở bất kỳ đâu. Nó có thể thất bại vì không có kết nối mạng khi nó được bắt đầu? Hãy thử xem xét cấu hình nếu có thể bật gỡ lỗi và / hoặc ghi nhật ký để tìm hiểu xem có gì sai. - LassePoulsen
@RicardoReyes sử dụng sudo update-rc.d -f minidlna remove để xóa các liên kết hiện có. - Dogweather
Tôi nhận được lỗi dưới đây update-rc.d: /etc/init.d/usermanage: tệp không tồn tại - Rizwan Patel


Đôi khi bạn cần chạy một kịch bản trên tiến trình khởi động, ví dụ chạy một cấu hình iptables trong quá trình khởi động. Vì vậy, bạn không phải chạy tập lệnh theo cách thủ công mỗi lần khởi động lại.

Bạn có thể chạy kịch bản của bạn trên tiến trình khởi động trong Ubuntu bằng cách thêm nó vào /etc/init.d/rc.local tập tin. Hãy xem các bước bên dưới.

  1. Mở /etc/rc.local tập tin với lệnh này:

    vim /etc/rc.local
    
  2. Thêm tập lệnh của bạn mà bạn muốn chạy trên tiến trình khởi động ở đó, ví dụ:

    sh /home/ivan/iptables.sh 
    echo 'Iptable Configured!'
    
  3. Xem xét các nhận xét được đưa vào tệp đó và đảm bảo rằng lối thoát 0 ở cuối.

  4. Lưu các tập tin. Và kịch bản của bạn sẽ chạy trên tiến trình khởi động.


31
2017-10-25 13:52



Nhận xét của /etc/init.d/rc.local trong Ubuntu 12.04 nói "Short-Description: Run /etc/rc.local nếu nó tồn tại", vì vậy có thể thêm các script vào /etc/rc.local sẽ là ý tưởng tốt hơn? - Sanghyun Lee
Liệu phương pháp này có đưa ra lệnh "shutdown" cho dịch vụ hoặc chỉ cần hủy quá trình khi tắt hệ điều hành? - Vadim Chekan
Vadim, rc.local chỉ chạy lúc khởi động, không có gì đạt được khi tắt máy. Quá trình này rất có thể sẽ bị hệ điều hành giết khi tắt máy. - Weboide
FYI: Sự khác biệt giữa rc.local vs thêm nó vào init, là rc.local được thực hiện ở cuối chuỗi khởi động init, chứ không phải là một phần của nó - BobTuckerman


  • Để bắt đầu một daemon lúc khởi động:

    update-rc.d service_name defaults
    
  • Để xóa:

    update-rc.d -f service_name remove
    

mặc định => mức chạy mặc định 2,3,4 và 5

Thí dụ:

update-rc.d tomcat7 defaults

26
2018-01-15 12:20



Khi tôi thực hiện lệnh này, tôi nhận được "Các liên kết khởi động / dừng hệ thống cho /etc/init.d/tomcat7 đã tồn tại". Tuy nhiên, khi tôi khởi động lại, nó không bắt đầu tomcat, tôi luôn luôn phải làm "dịch vụ tomcat7 bắt đầu". - John Little
trong trường hợp của tôi sudo update-rc.d myservice mặc định luôn hoàn thành không có đầu ra và dịch vụ sẽ không khởi động khi khởi động hoặc với sudo service myservice bắt đầu cũng hoàn thành âm thầm. sudo /etc/init.d/myservice startcông trình tuy nhiên - axk