Cách chạy các lệnh và tập lệnh Linux tự động khi khởi động lại hệ thống

How Run Linux Commands



Việc chạy ứng dụng và tập lệnh tự động khi khởi động có thể hữu ích để tự động hóa các sự kiện và tác vụ khởi động phổ biến. Bài viết này sẽ giải thích một số phương pháp có thể được sử dụng để khởi chạy ứng dụng và tập lệnh khi khởi động lại mới hoặc đăng nhập mới.

Ứng dụng Khởi động

Ubuntu và các bản phân phối dựa trên GNOME khác đi kèm với một ứng dụng được gọi đơn giản là Ứng dụng Khởi động. Nó có thể được sử dụng để quản lý các ứng dụng và tập lệnh chạy khi khởi động lại hoặc đăng nhập hệ thống mới.







Khởi chạy ứng dụng Ứng dụng khởi động từ trình khởi chạy ứng dụng và nhấp vào nút Thêm để thêm mục nhập mới.





Điền vào các trường Tên và Lệnh tùy theo nhu cầu của bạn, sau đó nhấp vào nút Thêm để hoàn tất việc tạo mục nhập mới. Mục nhập được tạo trong ảnh chụp màn hình bên dưới sẽ gửi lời nhắc Tạo sao lưu dưới dạng thông báo hệ thống mỗi lần khởi động lại / đăng nhập. Bạn có thể thay thế nó bằng lệnh của riêng bạn hoặc bằng đường dẫn đầy đủ của tập lệnh bash của bạn. Bạn cũng có thể sử dụng bất kỳ lệnh hệ thống hiện có nào hoặc các tệp thực thi thường nằm trong các thư mục bin khác nhau trên hệ thống tệp.





Như đã nêu ở trên, lời nhắc sao lưu được hiển thị mỗi khi khởi động lại.



Systemd

Systemd là một trình quản lý dịch vụ và daemon chứa nhiều tiện ích khác nhau để quản lý các quy trình hệ thống và các thành phần hệ điều hành. Ở dạng đơn giản, nó thường được sử dụng để bắt đầu và kết thúc các dịch vụ trong một chu kỳ khởi động mới.

Systemd có thể được sử dụng để tự động khởi chạy ứng dụng hoặc chạy tập lệnh khi khởi động mới. Để tạo cùng một thông báo nhắc nhở sao lưu được giải thích ở trên, trước tiên bạn phải tạo các thư mục và tệp được yêu cầu bằng cách chạy các lệnh bên dưới:

$mkdir -P~/.config/hệ thống/người sử dụng
$nano~/.config/hệ thống/người sử dụng/backup_reminder.service

Thay thế nano bằng lệnh của trình soạn thảo văn bản yêu thích của bạn. Thay backup_reminder bằng bất kỳ tên nào khác mà bạn thích.

Dán mã bên dưới vào tệp backup_reminder.service được tạo bằng lệnh trên.

[Đơn vị]
Mô tả = Gửi lời nhắc sao lưu sau mỗi lần khởi động lại
PartOf = graphical-session.target

[Dịch vụ]
ExecStart = bash -c 'ngủ 10; thông báo-gửi 'Tạo bản sao lưu' '
Loại = oneshot

[Cài đặt]
WantedBy = graphical-session.target

Đoạn mã trên khá đơn giản. Nó sẽ gửi thông báo Tạo sao lưu 10 giây sau khi phiên đồ họa được tải (mỗi lần khởi động lại hoặc đăng nhập).

Chạy các lệnh bên dưới để kích hoạt dịch vụ để nó có thể tự động chạy mỗi khi khởi động lại.

$chmod 644~/.config/hệ thống/người sử dụng/backup_reminder.service
$ systemctl--người sử dụng cho phépbackup_reminder.service
$ systemctl--người sử dụngdaemon-tải lại
$ khởi động lại

Đây chỉ là một ví dụ đơn giản về việc chạy một lệnh cơ bản khi khởi động bằng systemd. Bạn cũng có thể tạo các dịch vụ nâng cao với nhiều điều kiện và nhiều lệnh. Để biết thêm thông tin, hãy tham khảo trang systemd man bằng cách chạy lệnh bên dưới:

$Đàn ônghệ thống

Lưu ý rằng ví dụ này giải thích việc tạo một dịch vụ mới không yêu cầu quyền root và phù hợp với các ứng dụng tự động khởi động không yêu cầu quyền root. Nếu bạn muốn tự động khởi động các tập lệnh yêu cầu quyền truy cập root, bạn phải tạo một dịch vụ systemd mới trong thư mục / etc / systemd / system thay vì thư mục ~ / .config / systemd / user và bỏ qua –user switch trong các lệnh được đề cập ở trên.

Công việc lương thấp

Cron là một công cụ có thể chạy định kỳ các tác vụ đã lên lịch theo các điều kiện do người dùng chỉ định. Các công việc đã lên lịch này được tạo trong Crontab theo định dạng được xác định trước. Nói một cách dễ hiểu, Crontab cho Cron biết công việc nào sẽ chạy vào thời điểm nào.

Giống như systemd, crontab job có thể được sử dụng để khởi chạy ứng dụng và chạy script tự động khi khởi động. Để thêm một công việc cron mới, hãy chạy lệnh dưới đây:

$crontab-Và

Thêm các dòng sau vào cuối tệp văn bản (tự động khởi chạy thiết bị đầu cuối GNOME sau mỗi lần khởi động lại):

SHELL = / bin / bash
@reboot sleep 30 && DISPLAY =: 0 gnome-terminal

Bạn có thể sử dụng lệnh của riêng mình hoặc cung cấp đường dẫn đầy đủ cho một tập lệnh shell.

Lưu ý rằng không giống như systemd, cron không thể phát hiện xem phiên đồ họa đã được tải hay chưa. Bạn phải chỉ định một số khoảng thời gian chờ ước tính cho đến khi máy chủ X tải và một số nhận dạng hiển thị. Bạn có thể biết về ID hiển thị của mình bằng cách chạy lệnh dưới đây:

$quăng đi $ HIỂN THỊ

Độ trễ trước khi thực thi lệnh hoặc tập lệnh phụ thuộc vào cấu hình hệ thống và thời gian khởi động của bạn.

Rc.local

Một phương pháp khác để chạy các tập lệnh và lệnh khi khởi động là sử dụng tệp rc.local. Lưu ý rằng trong thử nghiệm của tôi, tôi không thể trì hoãn việc thực thi tập lệnh cho đến khi phiên đồ họa hoạt động. Việc thêm bất kỳ độ trễ nào ở chế độ ngủ sẽ dẫn đến sự chậm trễ trong việc hiển thị màn hình đăng nhập. Vì điều này, tôi đã không thành công trong việc chạy các ứng dụng đồ họa khi khởi động bằng tệp rc.local. Việc chỉnh sửa rc.local cũng yêu cầu quyền truy cập root, không giống như tất cả các ví dụ khác được giải thích ở trên.

Để thêm lệnh / tập lệnh vào tệp rc.local, hãy chạy lệnh bên dưới (tạo tệp rc.local mới nếu tệp không tồn tại):

$sudo nano /Vân vân/rc.local

Thêm các lệnh của bạn giữa #! / bin / bash và thoát 0 dòng, như hình dưới đây:

#! / bin / bash
path / to / my_script.sh
thoát 0

Làm cho tệp rc.local có thể thực thi bằng cách chạy lệnh dưới đây:

$sudo chmod+ x/Vân vân/rc.local

Chỉ cần khởi động lại để tập lệnh khởi động có hiệu lực.

Phần kết luận

Đây là một số phương pháp có thể được sử dụng để tự động chạy các tập lệnh và ứng dụng khi khởi động. Nếu bạn đang muốn chạy các tập lệnh không yêu cầu quyền truy cập root, tôi khuyên bạn nên sử dụng ứng dụng GUI cho Ứng dụng Khởi động. Nếu bạn muốn chạy các ứng dụng và tập lệnh với quyền truy cập root, tôi khuyên bạn nên tạo một dịch vụ systemd cấp hệ thống.

Giới thiệu về tác giả

Nitesh Kumar

Tôi là một nhà phát triển phần mềm tự do và người viết nội dung, người yêu thích Linux, phần mềm mã nguồn mở và cộng đồng phần mềm miễn phí.

Xem tất cả các bài viết