Cách chạy tập lệnh shell trong nền (chế độ nohup)
2024-10-21 12:03:58
tin tức
tiyusaishi
I. Giới thiệu
Trong các hệ thống Linux và Unix, chúng ta thường cần chạy các tập lệnh hoặc chương trình trong nền có thể tiếp tục chạy ngay cả sau khi đóng thiết bị đầu cuối hoặc ngắt kết nối SSH. Bài viết này sẽ hướng dẫn bạn cách sử dụng lệnh nohup để chạy tập lệnh shell trong nền và giải thích cách thức hoạt động của nó.
2. Bối cảnh: lệnh nohup
Nohup là một tiện ích dòng lệnh chạy lệnh hoặc tập lệnh và bỏ qua tất cả các tín hiệu gác máy. Điều này có nghĩa là lệnh nohup tiếp tục chạy ngay cả khi phiên đầu cuối kết thúc hoặc kết nối mạng bị ngắt. Điều này rất hữu ích cho các tác vụ nền chạy dài.
Phần 3: Làm thế nào để chạy shell scripts với nohup
1. Mở một thiết bị đầu cuối hoặc phiên SSH.
2. Nhập định dạng lệnh sau để chạy tập lệnh của bạn:
''Ầm ầm
nohup / đường dẫn / đến / your_script.sh&
```
/path/to/your_script.sh là đường dẫn của tệp tập lệnh và & cho biết nền đang chạy. Bạn cũng có thể trực tiếp sử dụng đường dẫn lệnh đầy đủ thay vì đường dẫn tập lệnh, ví dụ:
''Ầm ầm
nohupbash / đường dẫn / đến / your_script.sh&
```
3. Sau khi thực hiện lệnh, bạn sẽ thấy một thông báo nhắc cho bạn biết rằng quá trình nền đã được bắt đầu. Thông thường, lệnh nohup sẽ tạo ra một file có tên nohup.out trong thư mục hiện tại để lưu trữ thông tin output của script. Nếu bạn không muốn thông tin đầu ra được lưu trong tệp, bạn có thể sử dụng biểu tượng chuyển hướng để xuất thông tin đó ở nơi khác, ví dụ:
''Ầm ầm
nohup/path/to/your_script.sh>/path/to/output.log2>&1&
```
Ở đây ">" có nghĩa là chuyển hướng đầu ra tiêu chuẩn và "2>&1" có nghĩa là chuyển hướng đầu ra lỗi sang đầu ra tiêu chuẩn. Điều này cho phép bạn lưu đầu ra vào một tệp nhật ký được chỉ định.
4. Kiểm tra trạng thái của các quy trình nền
Để xem trạng thái của các tiến trình đang chạy trong nền, bạn có thể sử dụng lệnh sau:
1. Sử dụng lệnh 'ps' để tìm một quy trình cụ thể:
''Ầm ầm
psaux|grepyour_script_name hoặc ID quy trình (PID)
```
Điều này sẽ liệt kê tất cả các quy trình đang chạy mà bạn có thể tìm thấy bằng cách tìm kiếm tên tập lệnh hoặc ID quy trình của mình.
2. Sử dụng lệnh 'trên cùng' để xem trạng thái quá trình trong thời gian thực: Nhập lệnh 'trên cùng' vào thiết bị đầu cuối, sau đó nhấn phím "P" để sắp xếp danh sách quy trình theo mức sử dụng CPU và tìm quy trình tương ứng với tập lệnh của bạn. Bạn cũng có thể sử dụng tổ hợp phím Ctrl + C để thoát khỏi lệnh trên cùng. Bạn cũng có thể sử dụng công cụ 'htop', cung cấp giao diện trực quan và dễ sử dụng hơn để xem tài nguyên hệ thống và trạng thái quy trình. Nếu bạn chưa cài đặt 'htop' trên hệ thống của mình, bạn có thể cài đặt nó thông qua trình quản lý gói. Khi bạn sử dụng 'htop', bạn có thể thấy trực tiếp cấu trúc cây của quy trình, mức sử dụng bộ nhớ và các thông tin khác. Tuy nhiên, lưu ý rằng đối với các hệ thống lớn hoặc môi trường tải cao, sử dụng htop có thể tiêu tốn nhiều tài nguyên hơn. Do đó, hãy chắc chắn rằng bạn hiểu tác động hiệu suất trước khi sử dụng nó. Ngoài ra, để quản lý máy chủ từ xa, nên sử dụng công cụ giám sát chuyên nghiệp để theo dõi và quản lý từ xa. Những công cụ này thường cung cấp các tính năng toàn diện hơn như giám sát hiệu suất theo thời gian thực, thông báo cảnh báo và hơn thế nữa. Khi chọn công cụ, hãy đảm bảo chúng phù hợp với hệ điều hành và yêu cầu môi trường của bạn, cũng như có các tính năng chính như dễ sử dụng và độ tin cậy. Khi chọn một công cụ cụ thể, bạn cũng có thể tham khảo một số giải pháp hàng đầu trong ngành hoặc đánh giá trực tuyến để đưa ra lựa chọn sáng suốt. Nói chung, quản lý các tập lệnh shell chạy trong nền là một kỹ năng quan trọng và thiết thực, điều này rất quan trọng đối với người dùng hệ thống Linux và Unix, cho dù đó là môi trường cá nhân hay doanh nghiệp, cần đảm bảo rằng các tác vụ nền có thể chạy ổn định và đạt được chức năng mong đợi, đồng thời chú ý đến hiệu suất và bảo mật, v.v., tóm lại, thông qua phần giới thiệu của bài viết này, tôi tin rằng độc giả đã thành thạo cách sử dụng lệnh nohup để chạy các tập lệnh shell trong nền và quản lý trạng thái của các quy trình nền, điều này sẽ giúp cải thiện hiệu quả công việc và ổn định hệ thống, để đối phó tốt hơn với nhu cầu của các tình huống ứng dụng khác nhau, tóm lại, học và thành thạo các kỹ năng này sẽ giúp ích tốt hơnQuản lý và bảo trì hệ thống của bạn, đảm bảo rằng các tác vụ nền có thể chạy hiệu quả và ổn định, đồng thời mang lại nhiều tiện ích và lợi ích hơn cho công việc của bạn, tôi hy vọng bài viết này có thể hữu ích cho bạn, nếu bạn có thêm câu hỏi, vui lòng tham khảo các tài liệu và tài liệu liên quan để có thêm câu trả lời và góp ý nhé! Nói tóm lại, chạy nền rất phổ biến trong các hệ thống Linux và Unix, và thành thạo việc sử dụng các công cụ như nohup sẽ khiến bạn làm được nhiều hơn với ít hơn!