Cách thực hiện lệnh nohup trong tập lệnh shell
2024-10-27 15:08:56
tin tức
tiyusaishi
I. Giới thiệu
Trên Linux, lệnh nohup được sử dụng để chạy các lệnh không bị ảnh hưởng bởi phiên đầu cuối bị treo. Điều này rất hữu ích để chạy các quy trình chạy dài trong nền, đặc biệt là khi các tập lệnh được thực thi trên một máy chủ từ xa. Chủ đề này mô tả cách thực hiện lệnh nohup trong tập lệnh shell.
2. Kiến thức cơ bản: hiểu lệnh nohup
Lệnh nohup cho phép bạn chạy lệnh hoặc tập lệnh trong nền và không ngừng chạy ngay cả khi bạn thoát khỏi phiên đầu cuối. Điều này có nghĩa là bạn có thể bắt đầu một tập lệnh hoặc tác vụ trên máy chủ của mình một cách an toàn và ngắt kết nối SSH mà không ảnh hưởng đến việc chạy quy trình. Lệnh này đặc biệt hữu ích để thực thi các tập lệnh hoặc tác vụ chạy dài.
3. Các bước sử dụng lệnh nohup
1. Mở một phiên thiết bị đầu cuối.
2. Nhập định dạng lệnh sau: nohupcommand>/dev/null2>&1&. trong đó lệnh là lệnh hoặc tập lệnh bạn muốn chạy. Ví dụ: nếu bạn muốn chạy một tập lệnh có tên script.sh, bạn có thể nhập: nohup./script.sh>/dev/null2>&1&. Lệnh này chuyển hướng đầu ra của tập lệnh đến một tệp thiết bị trống (tức là bỏ qua đầu ra) và chạy trong nền. Biểu tượng & được sử dụng để bắt đầu quá trình trong nền. Điều này có nghĩa là quá trình sẽ tiếp tục chạy ngay cả khi phiên đầu cuối bị đóng. Hãy nhớ thay thế đường dẫn tệp tập lệnh bằng đường dẫn tập lệnh thực tế của bạn. Ngoài ra, nếu bạn cần chạy lệnh trong nền để tạo tệp đầu ra, bạn có thể chỉ định đường dẫn đến tệp đầu ra thay vì chuyển hướng đến / dev / null. Ví dụ: nohupcommand>outputfile.log2>&1&. Bằng cách này, đầu ra của lệnh sẽ được ghi vào tệp outputfile.log. Lưu ý: Nếu tệp đầu ra đã tồn tại, nó sẽ bị ghi đè. Vì vậy, hãy đảm bảo sử dụng tên tệp và đường dẫn thích hợp để tránh ghi đè lên dữ liệu quan trọng. Ngoài ra, sử dụng một đường dẫn tuyệt đối tránh được các vấn đề có thể phát sinh với các đường dẫn tương đối. Nếu một đường dẫn tương đối được sử dụng, nó có thể thay đổi do thay đổi trong thư mục làm việc hiện tại, khiến chương trình không thể tìm thấy tệp hoặc thư mục cần thiết. Do đó, để đảm bảo chương trình hoạt động bình thường, tốt nhất là sử dụng các đường dẫn tuyệt đối để chỉ định vị trí của các tệp và thư mục. Ví dụ: /home/username/myscript.sh. Thao tác này sẽ tạo ra một tệp có tên nohup.out trong thư mục hiện tại, là tệp đầu ra mặc định của nohup và lưu trữ đầu ra nền của lệnh đang chạy. Khi chạy tập lệnh với lệnh nohup, hãy đảm bảo rằng tập lệnh của bạn có quyền thực thi. 4. Thực thi lệnh nohup trong shell scriptCách thực thi lệnh nohup trong shell script tương tự như cách thực thi lệnh nohup trực tiếp trong terminal. Tạo một tệp tập lệnh shell mới (ví dụ: :run_script.sh) và thêm lệnh hoặc tập lệnh bạn muốn chạy bằng lệnh nohup ở phía trước nó. Ví dụ: nohup./your_script.sh>/dev/null2>&1&&, lưu tệp tập lệnh và cấp cho nó quyền thực thi. Chạy tập lệnh trong thiết bị đầu cuối. Ví dụ: bashrun_script.sh hoặc ./run_script.sh (tùy thuộc vào cài đặt hệ thống của bạn) để tập lệnh của bạn sẽ chạy trong nền mà không bị ảnh hưởng bởi thao tác gác máy. 5. Thận trọngKhi sử dụng lệnh nohup, bạn cần chú ý những điểm sau: Đảm bảo rằng bạn có đủ quyền để thực hiện lệnh. Khi sử dụng lệnh nohup, hãy thận trọng khi xử lý chuyển hướng đầu ra để tránh ghi đè lên dữ liệu quan trọng. Thường xuyên xem lại tệp đầu ra của nohup (ví dụ: nohup.out) để đảm bảo rằng quá trình hoạt động đúng. 6. Tóm tắtThông qua phần giới thiệu của bài viết này, bạn đã học được cách thực hiện lệnh nohup trong tập lệnh shell và các biện pháp phòng ngừa liên quan. Sử dụng đúng lệnh nohup cho phép bạn chạy các quy trình chạy dài trong nền mà không phải lo lắng về tác động của gián đoạn phiên đầu cuối đối với quy trình. Điều này sẽ giúp bạn quản lý các tác vụ trên các máy chủ từ xa hiệu quả hơn và đảm bảo thực hiện chúng trơn tru. Trên đây là bài viết giới thiệu tiếng Trung của "Cách thực thi lệnh nohup trong shell script", mình hy vọng nó sẽ hữu ích với các bạn nhé!