nohup nối đầu ra vào 'nohup.out'
2024-10-21 13:47:54
tin tức
tiyusaishi
Trong các hệ thống Linux, chúng ta thường sử dụng giao diện dòng lệnh để thực thi một số chương trình hoặc tập lệnh chạy dài, chẳng hạn như tải xuống tệp ở chế độ nền, chạy các tác vụ tính toán, v.v. Trong những trường hợp này, chúng tôi thường không muốn chương trình hoặc tập lệnh bị gián đoạn do tắt thiết bị đầu cuối hoặc ngắt kết nối mạng. Để giải quyết vấn đề này, chúng ta có thể sử dụng một tiện ích trong Linux - lệnh nohup. Đồng thời, khi chúng tôi chạy chương trình ở chế độ nền, thông tin đầu ra thường chuyển hướng đến một tệp có tên là "nohup.out" và bài viết này sẽ khám phá cách nối đầu ra vào tệp này bằng lệnh nohup.
Phần 1: Lệnh nohup là gì?
Đầu tiên, chúng ta hãy hiểu ý nghĩa cơ bản của lệnh nohup. Từ "nohup" có nguồn gốc từ "nohangup", có nghĩa là không cúp máy. Trong thuật ngữ máy tính, lệnh này được sử dụng để chạy một chương trình trong nền và bỏ qua tín hiệu gác máy. Nó có thể tiếp tục chạy các chương trình ngay cả khi thiết bị đầu cuối bị đóng, điều này rất tốt cho các chương trình cần chạy trong một thời gian dài.
Phần 2: Làm thế nào để sử dụng lệnh nohup?
Cú pháp cơ bản để sử dụng lệnh nohup như sau:
nohupcommand>/dev/null2>&1&
Trong đó "lệnh" là chương trình hoặc tập lệnh bạn muốn chạy, ">/dev/null" có nghĩa là chuyển hướng đầu ra đến một thiết bị trống, "2>&1" có nghĩa là chuyển hướng đầu ra lỗi sang đầu ra tiêu chuẩn và "&" có nghĩa là chạy chương trình ở chế độ nền. Ngoài ra, nếu bạn có đầu ra chương trình lớn hoặc cần chia sẻ đầu ra trên nhiều phiên, bạn có thể muốn nối nó vào một tệp cụ thể (ví dụ: nohup.out). Dưới đây là các bước:
Bước 1: Sử dụng lệnh nohup để chạy chương trình của bạn, nhưng không chỉ định tệp đầu ra trong thời điểm hiện tại. Ví dụ: nohupcommand&. Trong trường hợp này, đầu ra của chương trình sẽ được gắn vào tệp nohup.out trong thư mục hiện tại theo mặc định. Bạn có thể chạy lệnh ls để kiểm tra xem tệp có được tạo trong thư mục hiện tại hay không. Nếu tệp không tồn tại, bạn sẽ cần kiểm tra xem bạn có quyền tạo tệp hay không hoặc xem nhật ký hệ thống để biết thêm thông tin. Nếu quyền không đủ, bạn có thể chạy lệnh sudo để có được quyền cao hơn.
Bước 2: Sử dụng đối số dòng lệnh để chỉ định tên tệp đầu ra, bạn có thể thay thế nohup.out bằng bất kỳ tên nào để thay đổi tên và vị trí của tệp đầu ra. Ví dụ: nohupcommand>/path/to/yourfile&. Trong trường hợp này, tất cả đầu ra sẽ được gắn vào tệp bạn đã chỉ định. Khi một tệp không tồn tại, hệ thống sẽ tự động tạo tệp đó. Xin lưu ý về quyền đọc và ghi của tệp. Nếu tệp đã tồn tại và bạn không có quyền ghi, bạn sẽ cần sử dụng lệnh chmod để thay đổi quyền truy cập tệp hoặc sử dụng đường dẫn tệp khác có quyền ghi. Đồng thời, bạn cần chú ý xem dung lượng lưu trữ và dung lượng đĩa của tệp có đủ để tránh các sự cố như tràn hay không. Khi kích thước tệp đạt đến một giới hạn nhất định, bạn có thể xem xét tách nhật ký hoặc sử dụng cơ chế xoay vòng nhật ký để quản lý. Đồng thời, bạn cũng có thể theo dõi trạng thái đang chạy và thông báo lỗi của chương trình bằng cách xem các tệp nhật ký, để các vấn đề có thể được phát hiện và xử lý kịp thời. Khi xem tệp nhật ký, bạn có thể sử dụng các công cụ xem văn bản như cat và ít hơn để xem và quản lý chúng. Tóm lại, khi sử dụng lệnh nohup, bạn cần chú ý đến các chi tiết liên quan để đảm bảo hoạt động bình thường của chương trình và hiệu quả của việc quản lý nhật ký. Bằng cách thành thạo các kỹ năng này, chúng ta có thể sử dụng giao diện dòng lệnh Linux hiệu quả hơn để phát triển, vận hành và bảo trì chương trình. Tóm lại, đối với các chương trình cần chạy trong một thời gian dài, thành thạo cách sử dụng lệnh nohup để nối đầu ra vào một tệp được chỉ định là một trong những kỹ năng rất hữu ích, v.v., đáng để học và thành thạo chuyên sâu.