Cách chạy tập lệnh .sh với nohup: giải thích từng bước
2024-10-23 13:20:22
tin tức
tiyusaishi
Trong công việc hàng ngày của chúng tôi, chúng tôi thường cần chạy một số tập lệnh để thực hiện các tác vụ tự động hóa. Trong một số trường hợp, chúng tôi muốn tập lệnh tiếp tục chạy ngay cả sau khi chúng tôi thoát khỏi thiết bị đầu cuối hoặc đóng phiên. Để đạt được điều này, chúng ta có thể sử dụng lệnh nohup trong Linux. Bài viết này sẽ trình bày chi tiết cách sử dụng lệnh nohup để chạy các tập lệnh .sh.
1. Hiểu lệnh nohup
Trước hết, chúng ta cần hiểu ý nghĩa và chức năng cơ bản của lệnh nohup. Nohup là chữ viết tắt của "Nohangup", và chức năng chính của nó là chạy các lệnh hoặc tập lệnh trong nền mà không bị đình chỉ hoặc chấm dứt 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 chạy dài hoặc các tác vụ nền cần được tiếp tục chạy.
2. Cách chạy .sh script
Trên Linux, chúng tôi thường sử dụng bash hoặc các shell khác để chạy các tập lệnh .sh. Trước tiên, bạn cần đảm bảo rằng 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+xscriptname.sh. Sau đó, bạn có thể chạy tập lệnh theo cách sau: ./scriptname.sh.
3. Sử dụng nohup để chạy .sh script
Bây giờ chúng ta đã biết cách chạy tập lệnh .sh, bước tiếp theo là cách chạy nó bằng lệnh nohup. Định dạng lệnh cơ bản như sau: nohupcommand>/dev/null2>&1&. Lệnh ở đây là tập lệnh bạn muốn chạy. Ví dụ: nohup./scriptname.sh>/dev/null2>&1&. Lệnh này sẽ chạy tập lệnh trong nền và chuyển hướng tất cả đầu ra sang /dev/null (tức là bỏ qua tất cả đầu ra). Ký hiệu amper & cuối cùng là đặt lệnh đang chạy trong nền.
4. Lưu đầu ra NOHUP
Mặc dù chúng tôi chuyển hướng đầu ra sang / dev / null, nhưng đôi khi chúng tôi có thể muốn lưu đầu ra của tập lệnh. Trong trường hợp này, chúng ta có thể chuyển hướng đầu ra đến một tệp như: nohup./scriptname.sh>output.log2>&1&. Bằng cách này, tất cả đầu ra của tập lệnh được lưu vào tệp output.log.
5. Kiểm tra quy trình Nohup
Nếu bạn muốn xem nohup đang chạy gì, bạn có thể sử dụng lệnh jobs hoặc xem tệp nohup.out nếu đầu ra không được chuyển hướng đến tệp khác. Bạn cũng có thể sử dụng lệnh ps để xem thông tin quy trình cụ thể. Ví dụ: psaux|grepscriptname.
6. Kết thúc nhiệm vụ Nohup
Nếu bạn cần kết thúc một tác vụ nohup, bạn có thể tìm ID tiến trình (PID) tương ứng và sử dụng lệnh kill để kết thúc nó. Đầu tiên, sử dụng lệnh ps để xác định vị trí PID và sau đó sử dụng lệnh killPID để kết thúc quá trình.
Nhìn chung, chạy các tập lệnh .sh trong nền bằng lệnh nohup là một kỹ năng rất hữu ích, đặc biệt là trong các tác vụ chạy dài hoặc các tác vụ nền cần được tiếp tục chạy. Hy vọng bài viết này sẽ giúp bạn hiểu rõ hơn và sử dụng lệnh nohup.