Chức năng và nguyên tắc của lệnh nohup trong Linux
2024-10-16 11:08:03
tin tức
tiyusaishi
I. Giới thiệu
Trong 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ư tải xuống tệp, xử lý dữ liệu, v.v. Trong trường hợp này, lệnh nohup là một trong những công cụ rất hữu ích. Bài viết này sẽ thảo luận chi tiết về các chức năng của lệnh nohup trong Linux, cách thức hoạt động và cách sử dụng nó.
2. Lệnh nohup là gì?
Nohup là chữ viết tắt của "nohangup" và mục đích chính của lệnh này là làm cho lệnh chạy trong nền, ngay cả khi bạn thoát khỏi thiết bị đầu cuối hoặc đóng phiên. Nói cách khác, lệnh nohup cho phép bạn chạy lệnh trong nền mà không bị ảnh hưởng bởi cúp máy. Điều này rất hữu ích để chạy các tác vụ dài hạn.
3. Nguyên tắc của lệnh nohup
Khi bạn chạy một chương trình bằng lệnh nohup, chương trình sẽ tạo ra một tệp có tên nohup.out trong thư mục hiện tại để lưu trữ thông tin đầu ra của chương trình. Điều này là do khi bạn thoát khỏi thiết bị đầu cuối, chương trình có thể kết thúc vì quá trình cha (quá trình đầu cuối) thoát. Để tránh điều này, lệnh nohup chuyển hướng I / O của chương trình đến một tệp để chương trình có thể tiếp tục chạy ngay cả khi thiết bị đầu cuối bị đóng. Đồng thời, lệnh nohup cũng đặt ID phiên của tiến trình con thành ID nhóm tiến trình mới để ngăn quá trình bị chấm dứt sau khi thiết bị đầu cuối được đóng.
Phần 4: 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:
''Ầm ầm
nohupcommand>/dev/null2>&1&
```
Trong đó:
'command': Lệnh hoặc chương trình bạn muốn chạy.
'>/dev/null': Chuyển hướng đầu ra tiêu chuẩn đến một thiết bị trống, cho biết rằng thông tin đầu ra bị bỏ qua. Nếu bạn muốn xem thông tin đầu ra, bạn có thể chuyển hướng nó đến một tệp khác hoặc để trống.
'2>&1': Chuyển hướng đầu ra lỗi tiêu chuẩn sang đầu ra tiêu chuẩn, có nghĩa là cả thông báo lỗi và đầu ra thông thường đều bị bỏ qua hoặc lưu vào cùng một tệp. Nếu bạn chỉ muốn giữ thông báo lỗi, bạn có thể thay đổi phần này thành '>error.log2>&1' và lưu thông báo lỗi vào tệp error.log.
'&': Khiến lệnh chạy trong nền. Nếu bạn không thêm biểu tượng này, lệnh sẽ chạy ở nền trước và bạn sẽ thấy đầu ra của lệnh.
Ví dụ: để chạy một chương trình có tên myprogram trong nền, bạn có thể sử dụng lệnh sau:
''Ầm ầm
nohup./myprogram>myprogram.out&
```
Điều này sẽ làm cho myprogram chạy trong nền và lưu thông tin đầu ra vào tệp myprogram.out. Ngay cả khi thiết bị đầu cuối hoặc phiên bị đóng, myprogram vẫn tiếp tục chạy.
5. Tóm tắt
Bài viết này thảo luận chi tiết về chức năng, nguyên tắc và cách sử dụng lệnh nohup trong Linux. Với việc sử dụng lệnh nohup một cách khôn ngoan, chúng ta có thể dễ dàng chạy các tác vụ dài trong nền và đảm bảo rằng các tác vụ không bị chấm dứt vì thiết bị đầu cuối bị đóng. Hy vọng bài viết này sẽ giúp bạn hiểu rõ hơn và sử dụng lệnh nohup.