Tiêu đề: Cách sử dụng lệnh "nohup" để giữ cho các lệnh chạy trong tập lệnh shell mà không bị gián đoạn
2024-10-24 10:58:46
tin tức
tiyusaishi
Tóm tắt: Bài viết này sẽ trình bày chi tiết cách sử dụng lệnh nohup để thực thi lệnh trong tập lệnh shell và giữ cho nó chạy liên tục mà không bị gián đoạn ngay cả khi thoát khỏi terminal hoặc đóng phiên. Chúng tôi sẽ đề cập đến cú pháp cơ bản của lệnh nohup, các kịch bản sử dụng và khắc phục sự cố thường gặp.
I. Giới thiệu
Trong các hệ thống Linux và Unix, phiên đầu cuối có thể bị gián đoạn vì nhiều lý do, chẳng hạn như người dùng thoát khỏi thiết bị đầu cuối, kết nối mạng bị ngắt kết nối, v.v. Để chạy một lệnh hoặc tập lệnh trong nền và đảm bảo nó chạy liên tục, chúng ta có thể sử dụng lệnh nohup. Bài viết này sẽ hướng dẫn bạn cách sử dụng lệnh nohup và cách xử lý các vấn đề có thể xảy ra.
2. Giới thiệu về lệnh nohup
nohup là một lệnh chạy trên các hệ thống Unix và Linux để chạy 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à quá trình bắt đầu bởi nohup sẽ tiếp tục chạy ngay cả sau khi phiên đầu cuối kết thúc. Điều này rất hữu ích cho các tập lệnh hoặc chương trình chạy dài cần chạy trong nền.
3. Cú pháp cơ bản của lệnh nohup
Cú pháp cơ bản của lệnh nohup như sau:
''Ầm ầm
nohupcommand>/dev/null2>&1&
```
Trong đó:
lệnh: Lệnh hoặc tập lệnh để chạy.
>/dev/null: Chuyển hướng đầu ra chuẩn sang /dev/null để bỏ qua đầu ra.
2>&1: Chuyển hướng lỗi tiêu chuẩn sang đầu ra tiêu chuẩn. Ở đây lỗi tiêu chuẩn cũng được chuyển hướng đến /dev/null, có nghĩa là lỗi đầu ra bị bỏ qua.
&: Làm cho lệnh chạy trong nền.
4. Cách chạy tập lệnh shell bằng lệnh nohup
Để gửi tập lệnh shell chạy trong nền và bỏ qua tín hiệu gác máy, hãy làm theo các bước sau:
1. Mở Terminal.
2. Sử dụng lệnh cd để điều hướng đến thư mục chứa tập lệnh.
3. Nhập lệnh sau để chạy tập lệnh:
''Ầm ầm
nohup./script.sh>/dev/null2>&1&
```
Trong đó script.sh là tên tệp tập lệnh của bạn. Thao tác này sẽ khởi chạy tập lệnh và chạy trong nền mà không bị gián đoạn ngay cả khi thoát khỏi thiết bị đầu cuối.
5. Các vấn đề thường gặp và giải pháp
1.nohup: Không thể bỏ qua tín hiệu treo máy của quá trình con: Điều này là do lệnh nohup không thể truy cập vào thư mục hiện tại để tạo tệp nohup.out. Bạn có thể sử dụng đường dẫn tuyệt đối để chạy tập lệnh hoặc thay đổi quyền của thư mục hiện tại để giải quyết vấn đề này. Ví dụ: sử dụng lệnh sau để thay đổi quyền: chmod + w tên thư mục. Ngoài ra, hãy đảm bảo rằng hệ thống của bạn cho phép tạo các tệp hoặc thư mục mới. Nếu nó là root hoặc có đủ quyền, nó sẽ khắc phục sự cố. Nếu điều này không hiệu quả, hãy kiểm tra cài đặt quyền hệ thống tệp của hệ thống. Đảm bảo rằng bạn có quyền tạo tệp hoặc thư mục trong thư mục hiện tại. Bạn có thể thử sử dụng một thư mục khác để lưu tệp đầu ra của Nohup. Đối với đường dẫn tệp dài, hãy đảm bảo chúng không chứa các ký tự đặc biệt và thư mục có thể ghi được; Xem xét liệu đó có phải là vấn đề với quyền truy cập tệp hay chính thư mục có quyền đọc và ghi không chính xác hay không. Bạn cũng có thể kiểm tra xem có đầu ra nhật ký cấp hệ thống hay không để giúp khắc phục sự cố nguyên nhân gốc rễ của sự cố (ví dụ: /var/log/syslog hoặc dmesg). Nếu có thông báo về hạn ngạch đĩa đạt đến giới hạn hoặc lỗi thiết bị lưu trữ khác, hãy sửa ngay lập tức hoặc đảm bảo rằng thư mục đầu ra có đủ dung lượng và quyền ghi tương ứng. Nếu sự cố vẫn tiếp diễn, vui lòng kiểm tra nhật ký hệ thống để biết thêm thông tin và tìm kiếm sự hỗ trợ kỹ thuật chuyên nghiệp để giúp giải quyết sự cố. Ngoài ra, hãy đảm bảo rằng hệ thống của bạn hỗ trợ sử dụng lệnh nohup và phiên bản kernel hỗ trợ các tính năng tương ứng để bạn có thể sử dụng lệnh bình thường và giữ cho quá trình chạy không bị ảnh hưởng mà không bị chấm dứt. Quá trình thao tác trên chủ yếu liên quan đến sự hiểu biết về hệ thống tệp, bao gồm cách đọc và ghi tệp chính xác, và áp dụng các kiến thức cơ bản như xem và phân tích cú pháp nhật ký hệ thống, để giúp chúng tôi giải quyết các vấn đề gặp phải khi sử dụng lệnh nohup và đảm bảo hoạt động ổn định và đạt được hiệu quả mong đợi (không bị gián đoạn). Những kiến thức và kỹ năng cơ bản này là không thể thiếu trong các hoạt động (ví dụ: quản lý các quy trình dịch vụ trong quản lý máy chủ). Vì vậy, đừng vội vàng khi bạn gặp phải một vấn đề, hãy làm theo các mẹo có liên quan để kiểm tra và giải quyết nó từng bước, và bạn sẽ thấy rằng bản thân quá trình đó cũng là một quá trình học tập tốt. (Kết thúc)