上一篇
Cú pháp Bashnohup: Chạy lệnh trong nền và bỏ qua cúp máy
Trong các hoạt động của máy tính, chúng ta thường cần chạy các lệnh hoặc chương trình trong nề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, chúng ta cần sử dụng lệnh nohup trong Bash. Bài viết này sẽ xem xét kỹ hơn cú pháp và tính năng của Bashnohup để giúp bạn hiểu rõ hơn và sử dụng lệnh mạnh mẽ này.
Phần 1: Lệnh nohup là gì?
Nohup là chữ viết tắt của "Nohangup", có nghĩa là "không treo". Chức năng chính của lệnh này là làm cho lệnh chạy 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à các lệnh do nohup khởi tạo 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 hoạt động máy chủ từ xa hoặc các tập lệnh cần chạy trong một thời gian dài.
2. Cú pháp của lệnh nohup
Cú pháp cơ bản của lệnh nohup như sau:
''Ầm ầm
nohupcommand>/dev/null2>&1&
```
Trong đó:
'lệnh' là một lệnh để chạy trong nền.
'>/dev/null' có nghĩa là đầu ra tiêu chuẩn của lệnh được chuyển hướng đến một thiết bị trống, tức là không có thông tin đầu ra nào được hiển thị.
'2>&1' cho biết rằng đầu ra lỗi tiêu chuẩn được chuyển hướng đến đầu ra tiêu chuẩn. Bằng cách này, thông báo lỗi cũng sẽ được gửi đến '/dev/null'.
'&' chỉ ra rằng lệnh được chạy trong nền.
Phần 3: Làm thế nào để sử dụng lệnh nohup?
1. Chạy các tác vụ nền đơn giản
Giả sử chúng ta muốn chạy một tập lệnh có tên 'myscript.sh' trong nền, chúng ta có thể sử dụng lệnh sau:
''Ầm ầm
nohup./myscript.sh&
```
Bằng cách này, ngay cả khi thiết bị đầu cuối bị đóng, 'myscript.sh' vẫn sẽ chạy trong nền.
2. Chỉ định tệp đầu ra
Theo mặc định, lệnh nohup sẽ lưu đầu ra vào tệp 'nohup.out' trong thư mục hiện tại. Nếu bạn muốn lưu đầu ra vào một tệp được chỉ định, bạn có thể sử dụng tham số '-o' để chỉ định tệp đầu ra, ví dụ:
''Ầm ầm
nohup./myscript.sh>myoutput.log&
```
Bằng cách này, đầu ra của tập lệnh sẽ được lưu vào tệp 'myoutput.log'.
3. Sử dụng đường dẫn tuyệt đối
Khi sử dụng lệnh nohup, nên sử dụng đường dẫn tuyệt đối để chạy lệnh hoặc tập lệnh để tránh ảnh hưởng đến việc thực thi lệnh do sự thay đổi của thư mục làm việc hiện tại. Chẳng hạn:
''Ầm ầm
nohup/path/to/myscript.sh&
```
4. Biện pháp phòng ngừa
1. Khi sử dụng lệnh nohup, hãy đảm bảo bạn có đủ quyền để chạy lệnh hoặc tập lệnh. Một số lệnh có thể yêu cầu đặc quyền quản trị viên.
2. Khi chạy một tác vụ dài hạn, thường xuyên kiểm tra trạng thái và đầu ra của tác vụ để đảm bảo tác vụ đang chạy bình thường. ID tiến trình (PID) của một tác vụ nền có thể được tìm thấy bằng cách sử dụng lệnh 'ps'.
3. Để tránh lãng phí tài nguyên, nên đặt giới hạn tài nguyên thích hợp, chẳng hạn như bộ nhớ và CPU, khi chạy các tác vụ nền. Các giới hạn này có thể được đặt bằng lệnh 'ulimit'. Ví dụ: 'ulimit-m512m' chỉ ra rằng mức sử dụng bộ nhớ được giới hạn ở 512MB. Tất nhiên, bạn cũng có thể điều chỉnh giá trị của các tham số này theo nhu cầu của mình để đáp ứng nhu cầu của các tình huống khác nhau và các ràng buộc và yêu cầu của các kịch bản sử dụng! Bằng cách hiểu và áp dụng các công nghệ này, chúng ta có thể hiệu quả hơn!