Cách chạy tập lệnh trong nền bằng lệnh nohup trong Linux
2024-10-23 12:56:13
tin tức
tiyusaishi
Đối với người dùng Linux, đôi khi chúng ta cần chạy một số tác vụ dài có thể mất hàng giờ hoặc thậm chí vài ngày để hoàn thành. Tuy nhiên, khi chúng tôi bắt đầu các tác vụ này trong thiết bị đầu cuối, chúng sẽ bị chấm dứt ngay sau khi thiết bị đầu cuối tắt. Để tránh điều này, chúng ta có thể sử dụng lệnh nohup để chạy các tác vụ trong nền và chúng sẽ tiếp tục được thực thi ngay cả khi chúng ta đóng thiết bị đầu cuối. Chúng ta hãy xem xét kỹ hơn cách sử dụng lệnh nohup để chạy các tập lệnh trong nền trong Linux.
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", có nghĩa là "ngắt kết nối". Mục đích chính của lệnh này là làm cho lệnh chạy trong nền và không dừng thực thi ngay cả khi thiết bị đầu cuối bị đóng. Điều này rất hữu ích cho các tập lệnh hoặc chương trình chạy dài.
2. Cách sử dụng lệnh nohup
Cú pháp cơ bản để sử dụng lệnh nohup như sau:
''Ầm ầm
nohupcommand>/dev/null2>&1&
```
Trong đó:
Command là một lệnh hoặc script mà chúng ta cần chạy.
/dev/null có nghĩa là chuyển hướng đầu ra đến một thiết bị trống, tức là bỏ qua đầu ra.
2>&1 có nghĩa là đầu ra lỗi tiêu chuẩn được chuyển hướng đến đầu ra tiêu chuẩn.
" chỉ ra rằng lệnh được chạy trong nền.
Ví dụ: nếu chúng ta có một tập lệnh được gọi là script.sh, chúng ta có thể chạy nó như thế này:
''Ầm ầm
nohup./script.sh>/dev/null2>&1&
```
Bằng cách này, ngay cả khi chúng tôi đóng thiết bị đầu cuối, tập lệnh script.sh vẫn sẽ chạy trong nền.
3. Xem các tác vụ nền
Các tác vụ chạy trong nền có thể được xem thông qua lệnh công việc, nhưng phổ biến hơn là cách các quy trình được xem. Chúng ta có thể sử dụng lệnh ps với grep để tìm một quy trình cụ thể. Chẳng hạn:
''Perl
psaux|grepscript.sh
```
Điều này sẽ liệt kê tất cả thông tin quy trình liên quan đến script.sh.
4. Quản lý các tác vụ nền
Nếu chúng ta muốn kết thúc một tập lệnh chạy trong nền, chúng ta có thể sử dụng lệnh kill. Đầu tiên, chúng ta cần tìm process ID (PID) của script và sau đó kết thúc process bằng lệnh kill (kill command). Chẳng hạn:
''Ầm ầm
giết PID
```
trong đó PID là ID của quá trình chúng ta muốn kết thúc.
5. Sử dụng tệp nohup.out để lưu đầu ra
Mặc định, nohup sẽ tạo ra một file có tên nohup.out trong thư mục hiện tại để lưu output của script. Nếu chúng ta cần xem kết quả của tập lệnh, chúng ta có thể xem tệp này. Tất nhiên, chúng ta cũng có thể chuyển hướng đầu ra sang các tệp hoặc thư mục khác, ví dụ:
''Ầm ầm
nohup./script.sh>output.log2>&1&
```
Bằng cách này, đầu ra của tập lệnh sẽ được lưu vào tệp output.log.
Tóm tắt: Lệnh nohup là một lệnh rất hữu ích trong Linux, cho phép chúng ta chạy các tác vụ trong nền và không ngừng thực thi ngay cả khi thiết bị đầu cuối đã đóng. Qua phần giới thiệu bài viết này, mình tin rằng các bạn đã hiểu sâu hơn về cách sử dụng lệnh nohup để chạy các script trong nền trong Linux.