上一篇
Tiêu đề: Giải thích chi tiết về lệnh nohup và chuyển hướng đầu ra sang stdout
I. Giới thiệu
Trên các hệ thống Unix và Linux, các lệnh nohup và chuyển hướng đầu ra sang stdout là các hoạt động quản trị hệ thống phổ biến. Đối với các chương trình nền chạy dài, chúng tôi thường sử dụng lệnh nohup để tránh treo máy khiến chương trình chấm dứt. Đồng thời, để theo dõi thông tin đầu ra của chương trình, chúng tôi sẽ chuyển hướng đầu ra đến tệp hoặc thiết bị đầu cuối đầu ra tiêu chuẩn. Bài viết này sẽ trình bày chi tiết cách sử dụng lệnh nohup và cách chuyển hướng đầu ra sang stdout.
2. Giới thiệu về lệnh nohup
Lệnh nohup được sử dụng để chạy 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 thiết bị đầu cuối bị đóng hoặc phiên kết thúc, các lệnh do nohup khởi tạo sẽ tiếp tục chạy trong nền. Điều này rất tốt cho các chương trình dài hạn. Cú pháp cơ bản để sử dụng lệnh nohup như sau:
nohupcommand>file&
Trong đó lệnh là lệnh để chạy, tệp là tên tệp chuyển hướng đầu ra lệnh, & có nghĩa là đặt lệnh vào nền để chạy.
3. Chuyển hướng đầu ra sang đầu ra tiêu chuẩn (stdout)
Trong các hệ thống Unix và Linux, stdout là một mô tả tệp đặc biệt được sử dụng để đại diện cho đầu ra trên màn hình đầu cuối. Bằng cách chuyển hướng đầu ra sang stdout, chúng ta có thể hiển thị thông tin đầu ra của chương trình trên thiết bị đầu cuối hoặc ghi nó vào một tệp. Các toán tử chuyển hướng thường được sử dụng là > và >>. Cái trước được sử dụng để ghi đè lên nội dung hiện có trong tệp và cái sau được sử dụng để nối vào cuối tệp. Đây là một ví dụ:
nohupcommand>stdout.log& chuyển hướng đầu ra của lệnh vào tệp stdout.log và chạy lệnh trong nền.
command>&1 chuyển hướng đầu ra của lệnh sang stdout. Thông tin đầu ra của lệnh được hiển thị trực tiếp trong thiết bị đầu cuối. Thông thường, "&1" là viết tắt của bộ mô tả tệp đầu ra tiêu chuẩn. Nếu bạn muốn hiển thị cả thiết bị đầu cuối và lưu vào tệp, bạn có thể chạy lệnh bằng lệnh tee: command | teestdout.log và hiển thị đầu ra trong cả thiết bị đầu cuối và tệp stdout.log. 4. Mô tả ví dụGiả sử chúng ta có một chương trình tên là "myprogram" cần chạy trong một thời gian dài và chúng ta muốn lưu thông tin đầu ra của chương trình trong một tệp có tên là "program_output.log" và chúng ta cũng muốn hiển thị thông tin này trên thiết bị đầu cuối. Điều này có thể được thực hiện bằng cách làm theo các bước sau: Chạy lệnh sau trong thiết bị đầu cuối: nohup./myprogram>program_output.log& Thao tác này sẽ chạy chương trình myprogram ở chế độ nền và ghi tất cả thông tin đầu ra vào tệp program_output.log. Nếu bạn muốn thông tin này được hiển thị trong thiết bị đầu cuối, bạn có thể sử dụng lệnh đuôi để xem nội dung của tệp trong time:tail-fprogram_output.log thực ngay cả khi thiết bị đầu cuối bị đóng hoặc phiên kết thúc, chương trình myprogram vẫn tiếp tục chạy và tất cả thông tin đầu ra được nối vào tệp program_output.log. Với lệnh đuôi, chúng ta có thể xem đầu ra của chương trình trong thời gian thực. 5. Tóm tắt lệnh nohup và chuyển hướng đầu ra là những kỹ thuật hoạt động phổ biến trong các hệ thống Unix và Linux. Bằng cách nắm vững các mẹo này, chúng tôi có thể dễ dàng quản lý các chương trình nền chạy dài và theo dõi đầu ra của chúng. Bài viết này chi tiết cách sử dụng lệnh nohup và cách chuyển hướng đầu ra đến tệp hoặc thiết bị đầu cuối đầu ra tiêu chuẩn. Hy vọng rằng, độc giả sẽ được hưởng lợi từ nó và trở nên thành thạo trong các kỹ thuật này.