上一篇
Tập lệnh khởi động Linux chạy trong nền (lệnh nohup)
Trong các hệ thống Linux, chúng ta thường cần chạy một số tập lệnh hoặc chương trình nhất định trong nền, đặc biệt là khi thực hiện các tác vụ dài trên máy chủ từ xa. Trong trường hợp này, chúng ta có thể sử dụng lệnh nohup để đảm bảo rằng tập lệnh tiếp tục chạy trong nền, ngay cả khi chúng ta thoát khỏi thiết bị đầu cuối hoặc đóng phiên. Bài viết này sẽ hướng dẫn bạn cách sử dụng lệnh nohup để bắt đầu tập lệnh trên hệ thống Linux và đặt nó ở chế độ nền để chạy.
1. Sự cần thiết phải chạy các tập lệnh trong nền
Trong nhiều trường hợp, chúng tôi có thể cần bắt đầu một tập lệnh và để nó chạy ở chế độ nền, chẳng hạn như để xử lý dữ liệu dài, tác vụ tự động, v.v. Các tác vụ này có thể mất nhiều thời gian và nếu chúng ta chạy tập lệnh trực tiếp trong thiết bị đầu cuối, việc thực thi tập lệnh cũng sẽ bị gián đoạn ngay sau khi đóng thiết bị đầu cuối. Để giải quyết vấn đề này, chúng ta có thể sử dụng lệnh nohup để tránh loại vấn đề này.
2. Giới thiệu về lệnh nohup
Lệnh nohup cho phép lệnh chạy liên tục trong nền, bỏ qua tất cả các tín hiệu gác máy. Ngay cả khi bạn đóng thiết bị đầu cuối hoặc thoát khỏi phiên, các chương trình được khởi chạy bằng lệnh này sẽ tiếp tục chạy trong nền. Một trong những tính năng chính của lệnh này là nó có thể tự động chuyển hướng đầu ra đến một tệp có tên nohup.out, tránh mất thông tin đầu ra do đóng thiết bị đầu cuối.
3. Cách bắt đầu tập lệnh bằng lệnh nohup
Bắt đầu một kịch bản với lệnh nohup rất đơn giản. Giả sử chúng ta có một tệp tập lệnh được gọi là script.sh và chúng ta có thể chạy nó trong nền bằng cách làm theo các bước sau:
1. Mở Terminal và điều hướng đến thư mục chứa tập lệnh.
2. Nhập lệnh sau và nhấn enter: nohup./script.sh&. Biểu tượng "&" chỉ ra rằng tập lệnh được đặt trong nền để chạy. Nếu tập lệnh yêu cầu các quyền cụ thể, nó có thể được thực thi bằng sudonohup./script.sh&. Nếu đường dẫn tệp tập lệnh chứa khoảng trắng hoặc các ký tự đặc biệt khác, hãy đặt chúng trong dấu ngoặc kép. Ví dụ: nohup "./myfolder/script.sh"&. Trong trường hợp này, bạn có thể thấy rằng hệ thống xuất ra ID quy trình (PID). Xin lưu ý PID này, bạn có thể cần nó nếu bạn cần xem hoặc quản lý quá trình. Ví dụ: bạn có thể sử dụng lệnh ps để tìm một tiến trình đang chạy bằng PID. Bạn có thể sử dụng lệnh psaux|grep[PID], trong đó [PID] là ID tiến trình bạn đang tìm kiếm. Nếu bạn không thể tìm thấy ID quy trình, có thể là do hệ thống đã dọn dẹp các quy trình tạm thời này sau khi phiên của bạn kết thúc. Do đó, điều quan trọng là phải giữ PID của các quy trình quan trọng để quản lý và truy vấn sau này. Ngoài ra, điều quan trọng cần lưu ý là vì nohup sẽ tạo một môi trường phiên mới để chạy tập lệnh của bạn, các biến môi trường có thể không hoàn toàn giống nhau. Để tránh các sự cố biến môi trường có thể xảy ra, bạn có thể cần chuyển các biến môi trường bắt buộc thông qua các tham số hoặc đặt môi trường khởi động tương ứng để tránh các sự cố môi trường có thể gây ra lỗi thực thi tập lệnh hoặc gián đoạn không mong muốn. Một số tác vụ nền chạy dài có thể chiếm nhiều tài nguyên, dẫn đến tải hệ thống cao hoặc cạn kiệt tài nguyên. Do đó, chúng ta cần lập kế hoạch và quản lý hợp lý số lượng và mức độ ưu tiên của các nhiệm vụ nền tảng này để đảm bảo sự ổn định và hiệu quả của hệ thống. Bạn có thể kiểm tra việc sử dụng tài nguyên hệ thống, chẳng hạn như tải CPU và sử dụng bộ nhớ, để xác định xem có cần tối ưu hóa và điều chỉnh cấu hình tác vụ và chính sách quản lý để đảm bảo hoạt động và hiệu suất bình thường của hệ thống hay không. Nhìn chung, lệnh nohup là một công cụ rất thiết thực, có thể giúp chúng ta dễ dàng quản lý các tác vụ nền trong hệ thống Linux và có thể tiếp tục hoàn thành thao tác được chỉ định mà không phải lo lắng về việc tác vụ bị gián đoạn do đóng thiết bị đầu cuối hoặc các lý do khác, điều này sẽ ảnh hưởng đến sự ổn định của hệ thống và có thể đáp ứng nhu cầu tự động hóa của hầu hết các kịch bản, giúp công việc hiệu quả và thuận tiện hơn, không cần can thiệp thủ công và giám sát trạng thái của nhiều phiên hoặc quy trình, giảm đáng kể chi phí bảo trì và hiệu quả công việc, đồng thời cải thiện năng suất và độ tin cậy tổng thể. "Tóm lại, bằng cách sử dụng lệnh nohup, chúng tôi có thể dễ dàng quản lý các tác vụ nền trong hệ thống Linux và đặt chúng ở chế độ nền để tránh gián đoạn tác vụ do tắt thiết bị đầu cuối và các lý do khác, đảm bảo tính ổn định và hiệu suất của hệ thống và giúp chúng tôi hoàn thành tất cả các tác vụ khi sử dụng Linux dễ dàng hơn." Trên đây là phần giới thiệu về "linuxstartscriptinbackgroundnohup", mình hy vọng nó sẽ hữu ích với các bạn và mang lại sự tiện lợi và hiệu quả hơn cho công việc của các bạn khi sử dụng hệ điều hành Linux".