Tiêu đề: Thực thi tập lệnh shell bằng lệnh nohup
2024-10-28 12:21:04
tin tức
tiyusaishi
Trong các hệ thống Linux và Unix, chúng ta thường cần thực hiện các lệnh hoặc tập lệnh chạy dài cầ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, lệnh nohup trở nên rất hữu ích. Chủ đề này mô tả cách sử dụng lệnh nohup để thực thi tập lệnh shell.
Phần 1: Lệnh nohup là gì?
nohup là một lệnh Unix và Linux 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à 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 đặc biệt hữu ích cho các tác vụ chạy dài trên các máy chủ từ xa.
Phần 2: Làm thế nào để sử dụng nohup để thực thi các tập lệnh shell?
Thực thi các tập lệnh shell với nohup khá đơn giản. Chỉ cần nhập lệnh sau vào thiết bị đầu cuối:
''Ầm ầm
nohup./your_script.sh&
```
./your_script.sh là đường dẫn và tên tệp của tập lệnh shell của bạn và biểu tượng & cho biết đặt lệnh vào nền để chạy. Khi lệnh này được thực thi, tập lệnh của bạn sẽ chạy trong nền và sẽ không dừng ngay cả khi bạn đóng thiết bị đầu cuối.
3. Kiểm tra đầu ra nohup
Theo mặc định, nohup ghi đầu ra vào một tệp có tên 'nohup.out' trong thư mục hiện tại. Bạn có thể sử dụng lệnh sau để xem đầu ra:
''Ầm ầm
catnohup.out
```
Nếu bạn muốn chuyển hướng đầu ra đến một tệp hoặc thư mục khác, bạn có thể sử dụng tùy chọn -o của nohup:
''Ầm ầm
nohup./your_script.sh&>output.log&
```
Lệnh này sẽ chuyển hướng đầu ra của tập lệnh đến một tệp có tên là 'output.log'. Đồng thời, '&>' được sử dụng để chuyển hướng cả stdout và std-error. Bằng cách này, bạn có thể lưu tất cả đầu ra, bao gồm cả lỗi, vào cùng một tệp.
4. Biện pháp phòng ngừa
1. Đảm bảo tập lệnh của bạn có quyền thực thi. Nếu không, bạn có thể sử dụng lệnh chmod để cấp quyền thực thi: 'chmod+xyour_script.sh'.
2. Các quy trình của Nohup chạy trong nền không được kiểm soát bởi phiên đầu cuối nền trước, vì vậy không có cách nào để xem đầu ra thời gian thực trực tiếp thông qua thiết bị đầu cuối. Nếu bạn cần xem đầu ra trực tiếp, hãy sử dụng một công cụ khác như màn hình hoặc tmux. Hoặc sử dụng phương pháp được đề cập ở trên để chuyển hướng đầu ra đến một tệp. Xem lại nội dung của tệp để biết trạng thái quy trình hoặc thông tin lỗi. Nếu bạn cần theo dõi trạng thái của một quá trình trong thời gian thực, bạn có thể chạy lệnh ps để tìm PID của một tiến trình và chạy lệnh trên cùng để xem trạng thái của nó. Ví dụ: 'psaux|grepyour_script_name' có thể tìm thấy ID tiến trình (PID) của tập lệnh của bạn. Sau đó sử dụng 'top-pPID' để xem thông tin như trạng thái đang chạy và mức sử dụng CPU của tiến trình. Trên đây là phần giới thiệu ngắn gọn và tóm tắt bước sử dụng lệnh nohup để thực thi các tập lệnh shell, v.v., để bạn tham khảo, tìm hiểu nội dung liên quan, v.v. và những điểm kiến thức thú vị được tìm thấy trong thử nghiệm tiếp theo sẽ tiếp tục được cập nhật và chia sẻ với bạn, vì vậy hãy theo dõi nhé!