上一篇
Sử dụng lệnh nohup nhiều lần trong tập lệnh shell: nguyên tắc và ví dụ ứng dụng
Lệnh nohup là một trong những công cụ rất hữu ích cho các lập trình viên và quản trị viên hệ thống đang tham gia vào các tác vụ tự động hóa. Nó cho phép chúng tôi chạy lệnh và bỏ qua tín hiệu gác máy, ngay cả khi người dùng thoát khỏi phiên hoặc đóng cửa sổ đầu cuối. Sử dụng lệnh nohup nhiều lần trong tập lệnh shell đảm bảo rằng các tác vụ nền tiếp tục chạy, ngay cả khi môi trường thực thi tập lệnh thay đổi. Bài viết này sẽ xem xét kỹ hơn các nguyên tắc và ví dụ ứng dụng của việc sử dụng lệnh nohup nhiều lần.
1. Nguyên tắc cơ bản của NOHUP
Trong các hệ thống Unix và Linux, khi chúng ta mở một phiên đầu cuối, một shell được khởi chạy để thực thi các lệnh. Khi chúng ta nhập một lệnh vào cửa sổ terminal và thực thi nó, lệnh sẽ chạy cho đến khi nó được hoàn thành. Tuy nhiên, nếu chúng ta nhập một lệnh trong cửa sổ terminal và sau đó đóng cửa sổ hoặc thoát phiên, lệnh thường sẽ bị chấm dứt. Để giải quyết vấn đề này, chúng ta có thể sử dụng lệnh nohup để chạy lệnh để nó sẽ tiếp tục chạy ngay cả khi cửa sổ terminal bị đóng hoặc phiên bị thoát.
2. Sử dụng phương thức nohup nhiều lần trong tập lệnh shell
Nói chung có hai tình huống trong đó các lệnh nohup được sử dụng nhiều lần trong một tập lệnh shell: một là sử dụng nhiều lệnh nohup trong cùng một tập lệnh để bắt đầu nhiều tác vụ nền; Thứ hai là sử dụng nohup một lần nữa khi khởi động subscript bên trong script để đảm bảo rằng môi trường thực thi của subscript không bị chấm dứt.
Hãy bắt đầu với trường hợp đầu tiên: bắt đầu các tác vụ khác nhau trực tiếp với nhiều nohups trong một tập lệnh. Giả sử chúng ta có một tệp tập lệnh được gọi là myscript.sh nơi chúng ta có thể sử dụng nhiều nohups để bắt đầu các tác vụ nền khác nhau. Chẳng hạn:
''Ầm ầm
!/bin/bash
nohupcommand1> Bắt đầu tác vụ nền đầu tiên
nohupcommand2> bắt đầu tác vụ nền thứ hai
```
Biểu tượng '&' được sử dụng ở đây để cho phép lệnh chạy trong nền. Khi tập lệnh được thực thi, tất cả các tác vụ nền sẽ tiếp tục chạy. Đồng thời, bạn có thể thêm chuyển hướng đầu ra vào cuối lệnh nohup để lưu đầu ra của lệnh vào tệp. Ví dụ: 'nohupcommand>output.log2>&1&'. Điều này cho phép cả đầu ra tiêu chuẩn và đầu ra lỗi tiêu chuẩn được lưu vào tệp output.log. Lưu ý: Khi sử dụng nohup, hãy đảm bảo rằng cài đặt quyền là chính xác để tránh các lệnh không thể chạy bình thường do vấn đề quyền. Khi bạn muốn dừng một tác vụ nền, bạn có thể thực hiện bằng cách sử dụng tín hiệu điều khiển tương ứng hoặc giết quá trình theo cách thủ công. Bạn cũng có thể nhận và quản lý trạng thái của các tác vụ nền thông qua PS hoặc Kiểm soát công việc.
Trường hợp thứ hai là một kịch bản sử dụng tập lệnh trình khởi chạy nohup. Giả sử chúng ta có một mainScript.sh tập lệnh chính và một subScript.sh chỉ số phụ và chúng ta cần sử dụng nohup trong tập lệnh chính để đảm bảo rằng chỉ số phụ tiếp tục chạy mà không có tập lệnh chính thoát ra hoặc đóng thiết bị đầu cuối. Nó có thể được viết như thế này:
''Ầm ầm
!/bin/bash
nohup./subScript.sh& Sử dụng Nohup Startup Subscript và làm cho nó chạy trong nền
```
Trong trường hợp này, môi trường thời gian chạy của chỉ số phụ được đảm bảo bởi nohup và ngay cả khi tập lệnh chính đã hoàn thành và thoát hoặc cửa sổ đầu cuối bị đóng, chỉ số phụ sẽ tiếp tục chạy cho đến khi hoàn thành hoặc bị chấm dứt do các sự cố khác. Do đó, phương pháp này có thể đảm bảo rằng một số tác vụ nền chạy dài có thể chạy ổn định trong một môi trường cụ thể. Lưu ý rằng khi sử dụng nohup trong chỉ số dưới, bạn cũng cần xem xét các vấn đề như quyền và chuyển hướng đầu ra. Nó cũng quan trọng để theo dõi và quản lý trạng thái chạy và sử dụng tài nguyên của các tác vụ nền để tránh các vấn đề tiềm ẩn và tắc nghẽn hiệu suất. Tóm lại, Trong tập lệnh shell, việc sử dụng nohup nhiều lần có thể cung cấp sự đảm bảo đáng tin cậy cho sự ổn định và thực hiện liên tục các tác vụ nền, đặc biệt là khi bạn cần thực thi dịch vụ nền dài hạn, bạn có thể cân nhắc sử dụng lệnh này để đạt được môi trường hoạt động ổn định và đảm bảo tính liên tục của việc thực hiện tác vụ, đối với quản trị viên hệ thống và nhà phát triển tác vụ tự động hóa, nó là một trong những công cụ rất thiết thực, cần lưu ý rằng trong các ứng dụng thực tế, cần chú ý đến quản lý quyền và giám sát tác vụ, để đảm bảo tính bảo mật và hiệu quả của hệ thống, thông qua cấu hình và sử dụng chính xác, bạn có thể đạt được kết quả tốt trong các tác vụ tự động và quản lý hệ thống, đồng thời cũng cần chú ý đến các cơ chế ghi nhật ký và xử lý lỗi có liên quan, để tìm và giải quyết kịp thờiĐể đảm bảo hệ thống hoạt động ổn định, các nguyên tắc và ví dụ ứng dụng được cung cấp trong bài viết này sẽ giúp người đọc hiểu rõ hơn và áp dụng việc sử dụng lệnh nohup nhiều lần để đóng vai trò lớn hơn trong các tình huống làm việc thực tế