Tiêu đề: Nền Nohupshellscript và cách nó chạy trong nền
2024-10-29 12:43:30
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ư phân tích dữ liệu, trình thu thập thông tin, v.v. Để có thể đảm bảo rằng các tác vụ này tiếp tục chạy ngay cả sau khi thiết bị đầu cuối đã đóng, chúng ta có thể sử dụng lệnh nohup kết hợp với tập lệnh shell để đạt được điều này. Bài viết này sẽ giới thiệu nền tảng của lệnh nohup và cách nó chạy các tập lệnh shell trong nền.
2. Bối cảnh của lệnh nohup
Nohup là chữ viết tắt của "nohangup", có nghĩa là không cúp máy. Trong Linux, khi chúng ta bắt đầu một quá trình thông qua thiết bị đầu cuối, quá trình kế thừa quyền kiểm soát thiết bị đầu cuối. Sau khi đóng thiết bị đầu cuối, quá trình sẽ chấm dứt. Lệnh nohup có thể khiến quá trình bỏ qua tín hiệu gác máy và tiếp tục chạy ngay cả khi thiết bị đầu cuối đã đóng. Điều này rất hữu ích để thực hiện các tác vụ dài trong nền.
Phần 3: Cách sử dụng lệnh nohup để chạy tập lệnh shell trong nền
1. Tạo tập lệnh shell: Đầu tiên, chúng ta cần tạo một tập lệnh shell (một tệp kết thúc bằng .sh) chứa các lệnh hoặc chương trình sẽ được thực thi. Ví dụ: hãy tạo một tập lệnh có tên myscript.sh.
2. Chỉnh sửa tập lệnh: Mở tệp myscript.sh bằng trình soạn thảo văn bản và thêm các lệnh bạn muốn thực thi. Chẳng hạn:
''Ầm ầm
!/bin/bash
Tập lệnh sẽ chạy liên tục trong nền
"Chạy..."
Sleep5 chỉ để trình diễn và mô phỏng một nhiệm vụ tốn thời gian
"Nhiệm vụ đã hoàn thành!" "
```
Lưu và đóng tệp.
3. Cấp quyền thực thi tập lệnh: Sử dụng lệnh chmod để cấp quyền thực thi tập lệnh. Chẳng hạn:
''Ầm ầm
chmod+xmyscript.sh
```
4. Chạy tập lệnh: Sử dụng lệnh nohup để chạy tập lệnh trong nền. Chẳng hạn:
''Ầm ầm
nohup./myscript.sh&
```
Biểu tượng "&" chỉ ra rằng tập lệnh được đặt trong nền để chạy. Tại thời điểm này, thiết bị đầu cuối xuất ra một đường dẫn tệp đầu ra để chỉ ra rằng đầu ra của tập lệnh sẽ được chuyển hướng đến tệp đó. Tập lệnh tiếp tục chạy ngay cả khi thiết bị đầu cuối đã đóng.
4. Biện pháp phòng ngừa
1. Tệp đầu ra: Vì lệnh nohup sẽ chuyển hướng đầu ra sang tệp có tên nohup.out, bạn cần đảm bảo rằng bạn có đủ dung lượng đĩa để lưu trữ đầu ra. Nếu bạn cần thay đổi tên và vị trí của tệp đầu ra, bạn có thể chỉ định đường dẫn và tên của tệp đầu ra sau lệnh nohup. Ví dụ: nohup./myscript.sh>myoutput.log2>&1&. Trong đó ">" cho biết chuyển hướng stdout và "2>&1" chuyển hướng đầu ra sai sang stdout. Điều này lưu cả đầu ra tiêu chuẩn và lỗi vào tệp myoutput.log. Sửa đổi đường dẫn và tên của tệp đầu ra theo yêu cầu. Sửa đổi đường dẫn và tên của tệp đầu ra theo yêu cầu. Tránh vấn đề không đủ dung lượng đĩa do tệp đầu ra quá lớn. Thường xuyên dọn dẹp các tệp đầu ra hoặc đặt chính sách xoay vòng nhật ký để tránh làm đầy dung lượng đĩa. Đảm bảo rằng các lệnh hoặc chương trình trong tập lệnh có đủ quyền để truy cập các tệp và thư mục cần thiết, Nếu không, nó có thể khiến tác vụ không thành công hoặc thông báo lỗi xuất hiện, bạn có thể kiểm tra tài liệu liên quan hoặc liên hệ với quản trị viên hệ thống để được trợ giúp, nếu bạn gặp bất kỳ sự cố nào khi chạy tập lệnh, vui lòng kiểm tra xem lệnh và cú pháp trong tập lệnh có chính xác không và kiểm tra đầu ra tệp nhật ký của nohup để biết thêm thông tin, trên đây là phần giới thiệu lệnh nohup và tập lệnh shell chạy trong nền, tôi hy vọng nó sẽ hữu ích cho bạn!