Tiêu đề: Một cái nhìn sâu sắc về cách lệnh nohup hoạt động trong Linux
2024-10-21 12:07:28
tin tức
tiyusaishi
Trong môi trường Linux, chúng ta thường sử dụng công cụ dòng lệnh để xử lý các chương trình hoặc tác vụ nền chạy dài và công cụ này là lệnh nohup. Nhiều người mới có thể có câu hỏi về câu hỏi "chính xác thì Nohup hoạt động như thế nào". Hôm nay, chúng tôi sẽ giải thích chi tiết cách thức hoạt động của lệnh này và cách áp dụng nó.
1. Hiểu các khái niệm cơ bản của lệnh nohup
Trước hết, chúng ta cần biết rằng tên đầy đủ của nohup là "nohangup", có nghĩa là không cúp máy. Trong Linux, khi người dùng chạy một chương trình hoặc lệnh trên thiết bị đầu cuối, nếu phiên đầu cuối kết thúc hoặc bị đóng, lệnh thường kết thúc vì phiên bị treo. Tuy nhiên, đôi khi chúng ta cần các chương trình tiếp tục chạy ngay cả khi thiết bị đầu cuối đã đóng. Trong trường hợp này, chúng ta cần sử dụng lệnh nohup để chạy chương trình của mình.
2. Cách sử dụng lệnh nohup
Định dạng cơ bản để sử dụng lệnh nohup là: nohupcommand>/dev/null2>&1&. Mỗi phần ở đây có ý nghĩa cụ thể của nó:
lệnh: Đây là lệnh hoặc chương trình bạn muốn chạy.
>/dev/null: Điều này chuyển hướng stdout của lệnh đến /dev/null, tức là loại bỏ tất cả đầu ra. Bằng cách này, chúng ta không thể thấy đầu ra của lệnh trực tiếp. Nếu chúng ta muốn xem đầu ra, chúng ta có thể chuyển hướng nó đến một tệp như: nohupcommand>output.txt2>&1&. Thao tác này sẽ lưu thông tin đầu ra vào tệp output.txt.
2>&1: Điều này chuyển hướng đầu ra lỗi tiêu chuẩn sang đầu ra tiêu chuẩn, có nghĩa là thông báo lỗi cũng được ghi lại và lưu vào tệp chúng tôi chỉ định. Nếu không có bước này, thông báo lỗi có thể xuất hiện trên thiết bị đầu cuối, khiến chúng hiển thị ngay cả khi thiết bị đầu cuối đã đóng. Đây là điều chúng tôi không muốn thấy. Do đó, chúng tôi thường chuyển hướng thông báo lỗi đến cùng một tệp cùng với đầu ra tiêu chuẩn.
&: Ở cuối lệnh, biểu tượng này đặt lệnh đang chạy trong nền. Đó là, khi bạn chạy một lệnh với một &, bạn có thể tiếp tục làm việc trong thiết bị đầu cuối ngay khi bạn bắt đầu lệnh mà không cần phải đợi lệnh hoàn tất. Điều này cũng có nghĩa là bạn có thể đóng thiết bị đầu cuối hoặc thoát khỏi phiên mà không ảnh hưởng đến việc chạy các chương trình nền. Đây chính xác là một trong những mục tiêu chính của lệnh Nohup.
3. Cách thức hoạt động của lệnh nohup
Khi bạn chạy một chương trình bằng lệnh nohup, nó sẽ tạo một tệp có tên nohup.out (nếu không có tệp nào có cùng tên trong thư mục hiện tại) để lưu trữ đầu ra và thông báo lỗi của chương trình. Nếu đường dẫn tệp bạn chỉ định đã tồn tại, nohup sẽ nối thêm nội dung vào tệp thay vì ghi đè lên nó. Bất kể bạn thoát khỏi thiết bị đầu cuối hoặc khởi động lại máy tính của mình như thế nào, các chương trình được khởi chạy qua nohup sẽ tiếp tục chạy và tạo đầu ra cho tệp tương ứng. Đó là lý do tại sao chúng ta có thể đạt được mục đích có thể chạy chương trình ngay cả khi thiết bị đầu cuối được đóng bằng lệnh nohup. Ngoài ra, chương trình khởi chạy qua nohup sẽ không bị ảnh hưởng bởi tín hiệu gác máy, do đó đảm bảo chương trình hoạt động ổn định. Nhìn chung, lệnh nohup đạt được mục tiêu của nó bằng cách chuyển hướng đầu ra và bỏ qua tín hiệu gác máy. Nó là một trong những công cụ rất hữu ích trong các hệ thống Linux, đặc biệt là trong trường hợp bạn cần chạy các tác vụ nền trong một thời gian dài. Bằng cách hiểu cách thức hoạt động và cách nó được sử dụng, chúng ta có thể sử dụng nó hiệu quả hơn để hoàn thành nhiệm vụ của mình. Đó là nó cho phần giới thiệu và giải thích ngày hôm nay về cách thức hoạt động của lệnh nohup. Hy vọng bài viết này sẽ giúp bạn hiểu rõ hơn và nắm vững cách sử dụng lệnh nohup để xử lý các tác vụ nền chạy dài.