Nohup chạy sh script
2024-10-21 13:44:37
tin tức
tiyusaishi
Tiêu đề: nohup Chạy Shell Script: Một cách để liên tục thực hiện các lệnh trong nền
Tóm tắt: Bài viết này mô tả cách sử dụng lệnh nohup để chạy các tập lệnh shell trong nền để tránh làm gián đoạn việc thực thi tập lệnh do tắt thiết bị đầu cuối. Chúng ta sẽ đi vào chi tiết về cách sử dụng lệnh nohup, bao gồm cách tạo và chạy các tập lệnh shell, cũng như các mẹo để liên tục thực hiện các lệnh trong nền.
I. Giới thiệu
Trong các hệ thống Linux và Unix, tập lệnh shell là một công cụ mạnh mẽ để tự động hóa việc thực hiện một loạt các lệnh. Tuy nhiên, khi phiên đầu cuối được đóng, tập lệnh shell đang chạy cũng ngừng thực thi. Để giải quyết vấn đề này, chúng ta có thể sử dụng lệnh nohup để chạy tập lệnh shell trong nền để đảm bảo thực thi tập lệnh liên tục. Bài viết này mô tả cách chạy tập lệnh shell bằng lệnh nohup.
2. Giới thiệu về lệnh nohup
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. Điều này có nghĩa là quá trình bắt đầu bởi Nohup sẽ tiếp tục chạy ngay cả khi phiên đầu cuối bị đóng. Điều này rất hữu ích cho các tập lệnh cần chạy trong một thời gian dài trong phiên đầu cuối để đăng nhập từ xa hoặc trong phiên đầu cuối.
Phần 3: Làm thế nào để chạy shell scripts với nohup
1. Create a Shell Script: Đầu tiên, chúng ta cần tạo một tập tin Shell Script. Các tệp tập lệnh có thể được tạo bằng bất kỳ trình soạn thảo văn bản nào, chẳng hạn như vim hoặc nano. Trong tệp tập lệnh, hãy viết lệnh hoặc chuỗi lệnh mà bạn muốn thực thi. Khi lưu tệp, hãy đảm bảo sử dụng phần mở rộng .sh làm tên tệp (ví dụ: myscript.sh).
2. Cấp quyền thực thi cho tệp tập lệnh: Sử dụng lệnh chmod để cấp quyền thực thi cho tệp tập lệnh. Ví dụ: chạy lệnh "chmod+xmyscript.sh".
3. Chạy lệnh nohup: Mở thiết bị đầu cuối, điều hướng đến thư mục chứa tệp tập lệnh và chạy lệnh nohup. Cú pháp cơ bản như sau: "nohup./myscript.sh&". Trong số đó, "./myscript.sh" là đường dẫn đến tệp tập lệnh cần chạy và biểu tượng "&" cho biết đặt lệnh vào nền để chạy. Sau khi chạy lệnh, thiết bị đầu cuối sẽ hiển thị đường dẫn tệp đầu ra (thường là nohup.out) có chứa đầu ra của tập lệnh.
4. Kiểm tra trạng thái chạy tập lệnh: Tập lệnh do nohup bắt đầu sẽ tiếp tục chạy ngay cả khi phiên đầu cuối đã đóng. Bạn có thể kiểm tra trạng thái đang chạy của tập lệnh bằng cách xem danh sách các quy trình hoặc bằng cách sử dụng lệnh ps. Ví dụ: chạy "psaux|grepmyscript.sh" để tìm quá trình tập lệnh đang chạy.
4. Lời khuyên và biện pháp phòng ngừa
1. Sử dụng đường dẫn tuyệt đối: Để tránh các vấn đề về đường dẫn do chuyển đổi thư mục trong phiên đầu cuối, bạn nên sử dụng đường dẫn tuyệt đối của tệp tập lệnh trong lệnh nohup.
2. Xem tệp đầu ra: Lệnh nohup ghi đầu ra vào tệp có tên nohup.out theo mặc định. Bạn có thể sử dụng tệp đầu ra khác hoặc sử dụng chuyển hướng để lưu đầu ra vào một tệp cụ thể. Ví dụ: "nohup./myscript.sh>myscript.log2>&1&". Trong đó ">" cho biết chuyển hướng stdout và "2>&1" chuyển hướng đầu ra sai sang stdout.
3. Xử lý các quy trình nền: Nếu bạn cần quản lý các quy trình đang chạy trong nền, bạn có thể sử dụng Ctrl + C để chấm dứt quy trình hoặc xem danh sách quy trình để biết thêm thông tin về các tập lệnh đang chạy. Ngoài ra, các quy trình nền cụ thể có thể được chấm dứt bằng lệnh kill. Ví dụ: "giết<进程ID>". Bạn có thể sử dụng lệnh ps để lấy ID tiến trình.
5. Tóm tắt
Chủ đề này mô tả cách sử dụng lệnh nohup để chạy tập lệnh shell trong nền để tránh làm gián đoạn việc thực thi tập lệnh do tắt thiết bị đầu cuối. Với việc sử dụng đúng lệnh nohup và các mẹo liên quan, thật dễ dàng để quản lý quá trình tập lệnh shell chạy trong nền và đảm bảo thực thi tập lệnh liên tục. Điều này rất hữu ích cho các tác vụ tự động, đăng nhập từ xa và tập lệnh cần chạy trong thời gian dài trong nền.