Chạy lệnh Nohup trong tập lệnh shell
2024-10-27 13:25:57
tin tức
tiyusaishi
1. Hiểu các lệnh NoHup và tập lệnh shell
Trong các hệ thống Unix và Linux, shell scripting là một ngôn ngữ kịch bản được sử dụng để tự động hóa các tác vụ. Mặt khác, lệnh NoHup được sử dụng để chạy lệnh hoặc tập lệnh trong nền, ngay cả khi bạn thoát khỏi thiết bị đầu cuối. Điều này rất hữu ích cho các tác vụ dài hạn hoặc các quy trình nền cần được tiếp tục chạy.
2. Tại sao bạn cần sử dụng lệnh NoHup trong tập lệnh shell?
Khi bạn thực hiện một số tác vụ trong tập lệnh shell yêu cầu thời gian dài, nếu bạn chạy tập lệnh trực tiếp và đóng thiết bị đầu cuối, các tác vụ này có thể ngừng chạy do thiết bị đầu cuối ngừng hoạt động. Vấn đề này có thể được giải quyết hiệu quả bằng cách sử dụng lệnh NoHup, để tập lệnh chạy liên tục trong nền, bất kể thiết bị đầu cuối nền trước. Điều này rất hữu ích cho các tác vụ chạy thường xuyên hoặc cho các tác vụ cần chạy trong nền trong một thời gian dài.
Phần 3: Cách sử dụng lệnh NoHup trong tập lệnh shell
Định dạng cơ bản để sử dụng lệnh NoHup là: nohupcommand>/dev/null2>&1&. "command" là lệnh hoặc script bạn muốn chạy, ">/dev/null2>&1" là chuyển hướng đầu ra đến một thiết bị trống, tức là bỏ qua đầu ra và "&" là đặt lệnh ở chế độ nền. Đây là một ví dụ đơn giản:
Giả sử chúng ta có một tập lệnh shell được gọi là "myscript.sh" và chúng ta có thể chạy nó bằng lệnh NoHup như sau:
''Ầm ầm
nohup./myscript.sh>/dev/null2>&1&
```
4. Các biện pháp phòng ngừa và câu hỏi thường gặp
1. Đảm bảo tập lệnh của bạn có quyền thực thi. Bạn có thể sử dụng các lệnh chmod để thêm quyền thực thi, chẳng hạn như :chmod+xmyscript.sh.
2. Tập lệnh của bạn cần phải có cú pháp và đường dẫn thực thi chính xác. Nếu bạn sử dụng các tập lệnh hoặc lệnh khác trong tập lệnh của mình, bạn cần đảm bảo rằng chúng có thể thực thi chính xác trong môi trường của bạn.
3. Khi tập lệnh của bạn cần chấp nhận các tham số đầu vào, bạn có thể thêm các tham số trực tiếp sau lệnh nohup, ví dụ: nohup./myscript.sharg1arg2>/dev/null2>&1&。
4. Sau khi sử dụng lệnh NoHup, tất cả đầu ra sẽ được chuyển hướng đến tệp được chỉ định (trong trường hợp này là / dev / null), rất hữu ích để bỏ qua đầu ra không mong muốn. Nhưng nếu bạn cần xem đầu ra, bạn có thể thay đổi vị trí của chuyển hướng đến tệp bạn muốn.
5. Bạn có thể nhập lệnh jobs vào thiết bị đầu cuối để xem tất cả các quy trình đang chạy trong nền. Bạn cũng có thể sử dụng lệnh fg để đặt quá trình ở nền trước hoặc sử dụng lệnh kill để kết thúc quá trình.
5. Tóm tắt
Sử dụng các lệnh NoHup trong các tập lệnh shell giúp bạn dễ dàng chạy các tác vụ dài trong nền, ngay cả khi bạn đóng thiết bị đầu cuối. Chỉ cần ghi nhớ một vài cách sử dụng và biện pháp phòng ngừa cơ bản và bạn sẽ có thể tận dụng tối đa công cụ mạnh mẽ này để tăng năng suất của mình.