上一篇
Cách chạy tập lệnh NohupShell
I. Giới thiệu
Trong các hệ thống Linux, chúng ta thường cần chạy một số tác vụ dài hạn trong nền, chẳng hạn như phân tích dữ liệu, xử lý hàng loạt tệp, v.v. Các tác vụ này thường yêu cầu một tập lệnh duy nhất để hoàn thành một loạt các hoạt động và sự bền bỉ của các tập lệnh này trở nên rất quan trọng. Trong ngữ cảnh này, chúng ta thường sử dụng lệnh Nohup để chạy các tập lệnh shell và đảm bảo rằng chúng không bị ảnh hưởng bởi việc gác máy. Bài viết này sẽ trình bày chi tiết cách sử dụng lệnh Nohup để chạy shell script.
2. Hiểu lệnh Nohup
Trước hết, chúng ta cần hiểu lệnh Nohup là gì. Nohup là một lệnh Unix và Linux 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à ngay cả khi bạn thoát khỏi thiết bị đầu cuối hoặc đóng phiên, lệnh hoặc tập lệnh vẫn sẽ chạy trong nền. Điều này rất hữu ích cho các tác vụ nền chạy dài.
Phần 3: Cách sử dụng Nohup để chạy các tập lệnh shell
Tiếp theo, chúng ta hãy xem xét kỹ hơn cách sử dụng lệnh Nohup để chạy các tập lệnh shell. Giả sử chúng ta có một tập lệnh shell được gọi là myscript.sh và chúng ta cần làm theo các bước sau để chạy nó:
Bước 1: Đảm bảo rằng tập lệnh shell của bạn có quyền thực thi. Nếu bạn không có quyền thực thi, bạn có thể sử dụng lệnh chmod để thêm quyền thực thi, chẳng hạn như :chmod+xmyscript.sh.
Bước 2: Sử dụng lệnh Nohup để chạy tập lệnh của bạn. Cú pháp cơ bản là: nohupcommand&. Trong trường hợp này, lệnh của chúng ta là ./myscript.sh (giả sử script nằm trong thư mục hiện tại). Vì vậy, lệnh đầy đủ là: nohup./myscript.sh&. Biểu tượng "&" ở đây chỉ ra rằng lệnh đang chạy trong nền.
Bước 3: Sau khi thực hiện lệnh trên, Nohup sẽ tạo một tệp có tên nohup.out trong thư mục hiện tại, chứa tất cả đầu ra của tập lệnh của bạn. Bạn có thể sử dụng bất kỳ trình soạn thảo văn bản nào để mở tệp này để xem đầu ra. Nếu bạn muốn chuyển hướng đầu ra đến một tệp cụ thể, bạn có thể sử dụng tùy chọn "-o" của lệnh nohup để chỉ định đường dẫn và tên của tệp đầu ra. Ví dụ: nohup./myscript.sh>myoutput.log2>&1&. Ở đây ">myoutput.log" có nghĩa là chuyển hướng đầu ra tiêu chuẩn đến tệp myoutput.log và "2>&1" có nghĩa là chuyển hướng đầu ra lỗi sang đầu ra tiêu chuẩn (tức là tệp myoutput.log). Bằng cách này, tất cả đầu ra của tập lệnh của bạn sẽ được ghi lại trong myoutput.log tệp. Điều này rất hữu ích để xem các tập lệnh của bạn đang chạy như thế nào và khắc phục lỗi.
Thứ tư, tóm tắt
Chạy tập lệnh shell bằng lệnh Nohup giúp chúng ta chạy một tác vụ trong nền trong một thời gian dài và tác vụ tiếp tục chạy ngay cả sau khi thoát khỏi terminal hoặc đóng phiên. Khi sử dụng lệnh Nohup, hãy cẩn thận đặt đường dẫn và tên của tệp đầu ra một cách chính xác để bạn có thể dễ dàng kiểm tra hoạt động của tập lệnh và khắc phục lỗi. Hy vọng bài viết này đã giúp bạn hiểu rõ hơn và sử dụng lệnh Nohup để chạy shell script.