Nohup shell script với các đối số
2024-10-16 13:42:53
tin tức
tiyusaishi
Tiêu đề: Nohupshell Script và việc sử dụng các tham số
I. Giới thiệu
Trên các hệ thống Linux hoặc Unix, chúng ta thường cần thực thi các tập lệnh chạy dài, chẳng hạn như tác vụ nền, tác vụ theo lịch trình, v.v. Tuy nhiên, khi một phiên đầu cuối kết thúc hoặc thiết bị đầu cuối bị tắt, tập lệnh chấm dứt theo mặc định. Để tránh điều này, chúng ta có thể sử dụng lệnh nohup để thực thi tập lệnh. Bài viết này sẽ trình bày chi tiết cách chạy tập lệnh shell với các đối số bằng lệnh nohup.
2. Lệnh nohup là gì?
Lệnh nohup là chữ viết tắt của "nohangup" và được sử dụng để chạy lệnh hoặc tập lệnh trong nền và bỏ qua tất cả các tín hiệu gác máy. Bằng cách này, ngay cả khi phiên đầu cuối kết thúc hoặc bị đóng, lệnh nohup sẽ tiếp tục thực thi tập lệnh cho đến khi hoàn thành. Ngoài ra, lệnh nohup cũng có thể chuyển hướng đầu ra đến một tệp có tên nohup.out để tránh mất đầu ra nếu nó bị chấm dứt bởi một phiên đầu cuối.
Phần 3: Làm thế nào để chạy một tập lệnh shell với lệnh nohup?
Cú pháp cơ bản để chạy tập lệnh shell bằng lệnh nohup như sau:
''Ầm ầm
nohupcommand>/dev/null2>&1&
```
trong đó "lệnh" là kịch bản hoặc lệnh để chạy. Phần ">" / dev / null là chuyển hướng đầu ra đến một thiết bị trống để tránh nhiễu đầu ra. 2>&1 là chuyển hướng đầu ra lỗi tiêu chuẩn sang đầu ra tiêu chuẩn để tất cả đầu ra được ghi lại và ghi vào tệp nohup.out. Dấu "&" cuối cùng chỉ ra rằng lệnh được đưa vào nền để chạy.
Ví dụ: nếu bạn muốn chạy tập lệnh có tên myscript.sh và truyền tham số, bạn có thể sử dụng lệnh sau:
''Ầm ầm
nohup./myscript.sharg1arg2arg3>/dev/null2>&1&
```
Thứ tư, truyền các tham số vào kịch bản
Khi chạy một tập lệnh với lệnh nohup, chúng ta có thể truyền các đối số cho tập lệnh như bình thường. Các tham số này có thể được truy cập bên trong tập lệnh thông qua các biến đặc biệt '$ 1', '$ 2', v.v. Ví dụ: trong ví dụ trên, "arg1", "arg2", "arg3" là các tham số được truyền đến tập lệnh myscript.sh. Bên trong tập lệnh, bạn có thể sử dụng '$ 1', '$ 2', '$ 3', v.v. để tham khảo các tham số này.
5. Biện pháp phòng ngừa
1. Đảm bảo tập lệnh 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, ví dụ: :chmod+xmyscript.sh.
2. Khi sử dụng lệnh nohup, hãy đảm bảo rằng các biến môi trường của thư mục hiện tại được đặt chính xác, nếu không nó có thể khiến tập lệnh không chạy chính xác. Các biến môi trường có thể được xem và thiết lập bằng lệnh env.
3. Lệnh nohup sẽ tạo một tệp có tên nohup.out để lưu đầu ra. Vui lòng kiểm tra tệp này để tránh dung lượng đĩa quá mức. Nếu bạn cần thay đổi tên hoặc vị trí của tệp đầu ra, bạn có thể chỉ định tệp đầu ra mới với toán tử chuyển hướng trong lệnh nohup. Ví dụ: nohup./myscript.sh>output.log2>&1&.
6. Tóm tắt
Bài viết này mô tả cách sử dụng lệnh nohup để chạy tập lệnh shell với các tham số trong nền. Bằng cách sử dụng lệnh nohup một cách chính xác, chúng ta có thể đảm bảo rằng tập lệnh tiếp tục chạy và hoàn thành tác vụ ngay cả khi phiên đầu cuối kết thúc hoặc bị đóng. Trong thực tế, lệnh nohup rất hữu ích cho các tác vụ nền chạy dài, các tác vụ theo lịch trình, v.v. Hy vọng bài viết này sẽ giúp bạn đọc hiểu rõ hơn và sử dụng lệnh nohup.