上一篇
网站首页 / tin tức / Tiêu đề: Cách đặt một tiến trình vào nền và chạy nó trong nền và sử dụng lệnh nohup trong Linux
Tiêu đề: Cách đặt một tiến trình vào nền và chạy nó trong nền và sử dụng lệnh nohup trong Linux
Tóm tắt: Trong một hệ thống Linux, thường cần phải chạy một số tác vụ hoặc chương trình dài hạn nhất định trong nền. Bài viết này mô tả cách sử dụng công cụ dòng lệnh để gửi một quá trình chạy trong nền và sử dụng lệnh nohup để giữ cho nó chạy trong nền bất kể kết thúc phiên đầu cuối. Thông qua bài viết này, bạn sẽ học cách quản lý hiệu quả các quy trình nền trong hệ thống Linux của mình.
1. Tầm quan trọng của việc chạy các quy trình trong nền
Trong Linux, các tiến trình nền trước thường được sử dụng để thực hiện các tác vụ tương tác, chẳng hạn như các lệnh đầu cuối. Tuy nhiên, đối với các tác vụ chạy dài, việc để chúng ở nền trước có thể gây ra những bất tiện như khóa thiết bị đầu cuối, v.v. Gửi một quá trình để chạy trong nền cho phép người dùng thực hiện các tác vụ khác trong khi các tác vụ dài đang chạy trong nền cùng một lúc. Ngoài ra, ngay cả khi phiên đầu cuối kết thúc hoặc mạng bị ngắt kết nối, sử dụng các lệnh và công cụ cụ thể, chẳng hạn như nohup, có thể đảm bảo rằng các quy trình nền tiếp tục chạy.
2. Cách sử dụng dòng lệnh để gửi một tiến trình xuống nền
Trong Linux, các tiến trình có thể được gửi để chạy trong nền bằng cách sử dụng công cụ dòng lệnh. Một cách phổ biến để làm điều này là thêm biểu tượng "&" vào cuối lệnh. Chẳng hạn:
''Ầm ầm
$long_running_command&
```
Lệnh này bắt đầu một quá trình gọi là long_running_command trong nền. Sử dụng biểu tượng "&" sẽ ngay lập tức đưa shell trở lại dấu nhắc lệnh, cho phép người dùng tiếp tục với các tác vụ khác trong thiết bị đầu cuối. Lúc này, quá trình long_running_command sẽ chạy âm thầm trong nền.
3. Sử dụng lệnh nohup để giữ cho các quy trình nền chạy
Mặc dù mục đích của việc chạy trong nền có thể đạt được ở một mức độ nào đó bằng cách gửi các tiến trình xuống nền, các quy trình này thường ngừng chạy khi phiên đầu cuối kết thúc. Để giải quyết vấn đề này, lệnh nohup có thể được sử dụng. Nohup là một tiện ích để chạy lệnh và bỏ qua tín hiệu gác máy. Các tiến trình bắt đầu với nohup tiếp tục chạy ngay cả khi phiên đầu cuối kết thúc hoặc người dùng đăng xuất. Đây là cú pháp cơ bản để sử dụng lệnh nohup:
''Ầm ầm
$nohupcommand>/dev/null2>&1&
```
Trong số đó, "command" là lệnh bạn muốn chạy trong nền. ">/dev/null2>&1" là chuyển hướng đầu ra đến một tệp thiết bị trống để ẩn bất kỳ thông tin đầu ra nào. Biểu tượng "&" vẫn gửi lệnh chạy trong nền. Bằng cách này, bạn có thể đảm bảo rằng các quy trình nền tiếp tục chạy sau khi người dùng đăng xuất hoặc phiên đầu cuối kết thúc. Hành vi mặc định của lệnh nohup là tạo một tệp có tên nohup.out trong thư mục hiện tại để lưu thông tin đầu ra, nhưng lệnh trên tránh hành vi mặc định này bằng cách chuyển hướng thao tác. Bạn có thể sửa đổi đường dẫn của tệp đầu ra theo ý muốn. Các tiến trình được bắt đầu bởi nohup tự động kế thừa các thuộc tính như nhóm và biến môi trường từ tiến trình cha, vì vậy trong hầu hết các trường hợp không cần phải lo lắng về cấu hình. Tất nhiên, cũng cần chú ý đến việc chiếm dụng tài nguyên và bảo mật của quy trình, đồng thời theo dõi và điều chỉnh kịp thời để đảm bảo hệ thống hoạt động ổn định. Tóm lại: bằng cách sử dụng kết hợp các công cụ dòng lệnh và lệnh nohup, có thể quản lý linh hoạt và hiệu quả các quy trình nền trong các hệ thống Linux, đây là một kỹ năng rất quan trọng đối với cả quản trị viên hệ thống và người dùng thông thường. Qua phần giới thiệu bài viết này, tôi tin rằng bạn đọc đã nắm vững phương pháp cơ bản là đưa tiến trình vào nền và sử dụng lệnh nohup để giữ cho nó chạy liên tục trong hệ thống Linux, và có thể áp dụng vào hoạt động thực tế để nâng cao hiệu quả và mức độ quản lý của hệ thống.