Trong bài viết này, chúng ta sẽ khám phá một chỉ thị dòng lệnh được sử dụng thường xuyên: nohup. Đồng thời, chúng tôi cũng sẽ thảo luận về cách nó có thể được sử dụng kết hợp với "2>&1" để đạt được hoạt động nền và quản lý nhật ký hiệu quả hơn. Bài viết này dành cho những người quan tâm đến quản trị máy chủ và quản trị hệ thống. Cho dù bạn là quản trị viên hệ thống chuyên nghiệp hay người dùng bình thường, chúng tôi sẽ cố gắng giải thích cốt lõi của khái niệm này bằng ngôn ngữ trực quan và dễ hiểu nhất. 1. Hiểu khái niệm cơ bản về NOHUP Trước hết, chúng ta cần hiểu ý nghĩa và vai trò cơ bản của nohup. Nohup là chữ viết tắt của "nohangup" và biểu thị một cách để chạy các lệnh tiếp tục chạy ngay cả khi thiết bị đầu cuối bị đóng. Điều này rất hữu ích cho các quy trình hoặc chương trình chạy dài cần chạy trong nền. Các chương trình bắt đầu bằng lệnh nohup ghi đầu ra vào một tệp có tên nohup.out, trừ khi một tệp đầu ra khác được chỉ định. 2. Giới thiệu khái niệm "2>&1". Tiếp theo, chúng ta cần hiểu ý nghĩa và vai trò của "2>&1". "2>&1" là một biểu thức được sử dụng để chuyển hướng mô tả tệp. "2" cho biết đầu ra lỗi tiêu chuẩn, ">" cho biết chuyển hướng đến vị trí khác và "&1" cho biết chuyển hướng đến đầu ra tiêu chuẩn (tức là vị trí của đầu ra bình thường). Bằng cách này, đầu ra lỗi được chuyển hướng đến luồng đầu ra tiêu chuẩn. Mục đích của việc này thường là để ghi nhật ký lỗi trong cùng một tệp với đầu ra bình thường. 3. Sử dụng kết hợp NOHUP và "2>&1" để đạt được các phương pháp hay nhất Khi chúng ta cần chạy một lệnh hoặc chương trình trong nền và muốn nắm bắt cả đầu ra tiêu chuẩn và đầu ra lỗi, chúng ta có thể sử dụng lệnh nohup kết hợp với "2>&1". Bằng cách này, chúng tôi có thể đảm bảo rằng tất cả thông tin đầu ra được ghi lại trong tệp nhật ký được chỉ định, cho dù đó là đầu ra bình thường hay thông báo lỗi. Điều này không chỉ giúp chúng tôi theo dõi tình trạng của các chương trình dễ dàng hơn mà còn giúp chúng tôi xác định và giải quyết các vấn đề kịp thời. Dưới đây là cách thực hiện: Giả sử chúng ta muốn chạy một chương trình có tên myprogram trong nền, chúng ta có thể sử dụng lệnh sau: nohup./myprogram>myprogram.log2>&1& Lệnh này sẽ chuyển hướng cả thông báo đầu ra và thông báo lỗi của myprogram đến tệp myprogram.log và để chương trình myprogram chạy trong nền. Ngay cả khi bạn đóng thiết bị đầu cuối hoặc ngắt kết nối khỏi SSH, myprogram sẽ tiếp tục chạy. 4. Tổng kết và mở rộng kiến thức Ngoài các cách sử dụng trên, còn có các cách sử dụng và thủ thuật nâng cao hơn cho các hoạt động nohup và chuyển hướng. Ví dụ: chúng ta có thể sử dụng lệnh tee để xuất ra cả tệp và thiết bị đầu cuối; Chúng tôi cũng có thể sử dụng nhiều thao tác chuyển hướng để xử lý đầu ra tiêu chuẩn và đầu ra lỗi riêng biệt, v.v. Nắm vững các mẹo này sẽ giúp chúng tôi quản lý tốt hơn các quy trình nền và thông tin nhật ký. Trước khi chúng tôi kết thúc bài viết này, chúng tôi muốn bạn ghi nhớ một vài khái niệm chính: hiểu cách sử dụng lệnh nohup để chạy các tiến trình nền; Tìm hiểu cách sử dụng "2>&1" để chuyển hướng đầu ra lỗi; và cách kết hợp cả hai để quản lý nhật ký hiệu quả hơn. Cho dù bạn là người mới bắt đầu hay quản trị viên hệ thống có kinh nghiệm, bạn có thể cải thiện năng suất và kỹ năng giải quyết vấn đề của mình bằng cách nắm vững các mẹo này.