nohup .、run.sh 、dev、null 2 &1 &
2024-10-28 16:05:38
tin tức
tiyusaishi
Tiêu đề: Chạy Shell Scripts với lệnh nohup: Phân tích chuyên sâu và Hướng dẫn vận hành
Thân thể:
Trong các hệ thống Linux và Unix, chúng ta thường cần chạy các chương trình hoặc tập lệnh trong nề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. Trong trường hợp này, chúng ta cần sử dụng lệnh nohup. Chủ đề này mô tả cách sử dụng lệnh nohup để chạy các tập lệnh shell và giải thích cách sử dụng và biện pháp phòng ngừa phổ biến với các ví dụ. Trong bài viết này, chúng ta sẽ sử dụng một lệnh điển hình gọi là nohup./run.sh/dev/null2>&1&" làm ví dụ.
1. Hiểu lệnh nohup
Đầu tiên, chúng ta hãy hiểu ý nghĩa và chức năng cơ bản của lệnh nohup. nohup là một lệnh Unix / Linux được sử dụng để 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à ngay cả khi bạn đóng thiết bị đầu cuối hoặc ngắt kết nối khỏi SSH, quá trình bắt đầu bởi nohup sẽ tiếp tục chạy trong nền.
2. Lệnh phân tích cú pháp: "nohup./run.sh/dev/null2>&1&"
1. nohup: Chạy script bằng lệnh nohup.
2../run.sh: Đây là đường dẫn đến tập lệnh shell để chạy. Thay thế nó bằng đường dẫn tập lệnh của bạn khi cần.
3./dev/null: Đây là một tệp thiết bị đặc biệt đại diện cho một thiết bị trống. Ở đây, chúng tôi đang chuyển hướng stdout đến /dev/null, có nghĩa là chúng tôi không muốn thấy stdout của script. Đây là một thực tế phổ biến cho các tập lệnh chạy trong nền.
4.2>&1: Đây là biểu thức được chuyển hướng để chuyển hướng lỗi tiêu chuẩn (bộ mô tả tệp là 2) sang đầu ra tiêu chuẩn (bộ mô tả tệp là 1), và sau đó vì đầu ra tiêu chuẩn đã được chuyển hướng đến / dev / null, lỗi tiêu chuẩn cũng bị loại bỏ. Mục đích của việc này là để đảm bảo rằng chúng tôi không bị làm phiền bởi bất kỳ thông báo lỗi nào khi chúng tôi chạy tập lệnh trong nền.
5.&: Ở cuối lệnh, nó có nghĩa là đặt lệnh ở chế độ nền để chạy.
Phần 3: Cách chạy tập lệnh bằng lệnh nohup
Bước 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 lệnh chmod để thêm quyền thực thi vào tập lệnh, chẳng hạn như :chmod+xrun.sh.
Bước 2: Chạy lệnh nohup. Sử dụng lệnh như "nohup./run.sh/dev/null2>&1&" để chạy tập lệnh của bạn. Hãy cẩn thận để thay thế đường dẫn tập lệnh thực tế của bạn.
Bước 3: Xem đầu ra. Các tập lệnh chạy với lệnh nohup sẽ lưu đầu ra vào một tệp có tên nohup.out theo mặc định. Bạn có thể kiểm tra tệp này để xem tập lệnh đang chạy như thế nào.
4. Biện pháp phòng ngừa
1. Đảm bảo các tập lệnh của bạn không tiêu tốn quá nhiều tài nguyên hệ thống, nếu không nó có thể ảnh hưởng đến hoạt động bình thường của hệ thống.
2. Khi sử dụng lệnh nohup, nên sử dụng đường dẫn tuyệt đối để chạy tập lệnh để tránh các sự cố gây ra bởi sự thay đổi của thư mục làm việc hiện tại.
3. Nếu tập lệnh của bạn yêu cầu sử dụng các biến môi trường nhất định, hãy đảm bảo rằng các biến môi trường này cũng được nhận dạng chính xác trong môi trường mà Nohup đang chạy.
4. Nếu bạn không muốn xem bất kỳ thông tin đầu ra nào, ngoài việc chuyển hướng stdout và stderr sang / dev / null, bạn cũng có thể xem xét sử dụng tùy chọn "-s" để chặn thông tin đầu ra khi khởi động. Ví dụ: "nohup-s./run.sh&".
Tóm tắt: Bài viết này mô tả chi tiết cách sử dụng lệnh nohup để chạy tập lệnh shell trong nền và hiển thị cách sử dụng và biện pháp phòng ngừa cụ thể thông qua việc phân tích cú pháp lệnh điển hình. Hy vọng rằng, bài viết này sẽ giúp bạn sử dụng tốt hơn lệnh nohup trong việc sử dụng Linux và Unix hàng ngày.