Lệnh nohup trong LinuxShell được giải thích chi tiết
2024-10-24 10:35:29
tin tức
tiyusaishi
I. Giới thiệu
Trong Linux, chúng ta thường cần chạy một số lệnh hoặc tập lệnh chạy dài trong nền, cần tiếp tục chạy ngay cả sau khi chúng ta thoát khỏi thiết bị đầu cuối hoặc đóng phiên. Đó là nơi chúng ta cần sử dụng một công cụ mạnh mẽ gọi là nohup. Bài viết này sẽ giới thiệu chi tiết lệnh nohup trong LinuxShell, cách sử dụng và các biện pháp phòng ngừa.
2. NOHUP là gì?
nohup, viết tắt của "nohangup", là một lệnh chạy trên các hệ thống Unix và Linux để chạy các lệnh hoặc tập 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 bạn đóng thiết bị đầu cuối hoặc phiên bị rớt, quá trình do Nohup bắt đầu sẽ tiếp tục chạy. Điều này rất hữu ích để chạy các tác vụ dài trong nền.
3. Cách sử dụng Nohup
Cách cơ bản để sử dụng nó đơn giản như thêm "nohup" vào lệnh bạn muốn chạy. Chẳng hạn:
''Vỏ
nohupcommand>/dev/null2>&1&
```
Dưới đây là một vài điểm quan trọng cần lưu ý:
1. 'command' là lệnh hoặc tập lệnh bạn muốn chạy.
2. '>/dev/null2>&1' là chuyển hướng cả đầu ra tiêu chuẩn và đầu ra lỗi của lệnh sang /dev/null, nghĩa là bỏ qua tất cả thông tin đầu ra. Nếu bạn không thêm phần này, nohup 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.
3. '&' chỉ ra rằng lệnh được đặt trong nền để chạy.
Thứ tư, việc sử dụng nohup
Giả sử chúng ta có một tập lệnh được gọi là test.sh và chúng ta muốn chạy nó trong nền và tiếp tục chạy ngay cả khi thiết bị đầu cuối bị đóng, đại loại như thế này:
''Vỏ
nohup./test.sh>/dev/null2>&1&
```
5. Xem các tác vụ do nohup điều hành
ID tiến trình (PID) của một tác vụ bắt đầu bằng nohup có thể được tìm thấy bằng cách xem tệp nhật ký đầu ra của nohup (nếu bạn chưa chuyển hướng đầu ra đến /dev/null). Tệp thường là nohup.out (hoặc tên tệp khác mà bạn chỉ định). Bạn có thể sử dụng lệnh 'cat' hoặc 'less' để xem nội dung của tệp này. Ngoài ra, bạn có thể sử dụng lệnh 'ps' kết hợp với 'grep' để tìm một quy trình cụ thể:
''Vỏ
psaux|greptest.sh
```
6. Biện pháp phòng ngừa
1. Các tác vụ chạy với nohup không tự động kết thúc trong nền trừ khi tác vụ được hoàn thành hoặc nó bị chấm dứt theo cách thủ công. Điều này có thể dẫn đến lãng phí tài nguyên hệ thống, vì vậy bạn nên đảm bảo rằng các nhiệm vụ của bạn có thể được hoàn thành trong một khoảng thời gian hợp lý.
2. Lệnh nohup không đảm bảo rằng tác vụ sẽ chạy thành công. Nếu có vấn đề với chính lệnh hoặc sự cố với môi trường thời gian chạy, vẫn có thể thất bại. Xem lại nhật ký sau khi tác vụ hoàn thành là một bước quan trọng trong việc khắc phục sự cố.
3. Trong một số trường hợp, thậm chí sử dụng nohup sẽ không giải quyết được vấn đề nếu người dùng hiện tại không có đủ quyền để chạy một lệnh hoặc tập lệnh nhất định. Tại thời điểm này, bạn cần đảm bảo rằng người dùng hiện tại có đủ quyền để thực hiện hành động thích hợp.
7. Tóm tắt
nohup là một công cụ rất hữu ích trong LinuxShell có thể giúp chúng ta chạy các tác vụ dài trong nền và bỏ qua tín hiệu gác máy. Khi được sử dụng đúng cách, nó có thể giúp chúng ta sử dụng tài nguyên máy tính của mình hiệu quả hơn. Bài viết này giới thiệu cách sử dụng cơ bản của nó và một số vấn đề và biện pháp phòng ngừa phổ biến, tôi hy vọng nó sẽ hữu ích cho bạn.