I. Giới thiệu Trong Linux, chúng ta thường sử dụng lệnh nohup để chạy các chương trình trong nền, do đó ngay cả khi bạn đóng cửa sổ đầu cuối, chương trình sẽ tiếp tục chạy. Tuy nhiên, trong một số trường hợp, chúng tôi có thể cần chấm dứt các chương trình đang chạy trong nền này. Trong trường hợp này, chúng ta có thể sử dụng lệnh kill để làm như vậy. Chủ đề này mô tả cách sử dụng lệnh kill để chấm dứt một tiến trình đang chạy trong nohup trên Linux. 2. Kiến thức cơ bản: lệnh nohup và kill Lệnh 1.nohup: Nó cho phép người dùng chạy lệnh hoặc tập lệnh trong nền và lệnh hoặc tập lệnh sẽ tiếp tục chạy ngay cả khi cửa sổ đầu cuối bị đóng. Khi bạn chạy lệnh với nohup, tệp có tên nohup.out được tạo theo mặc định trong thư mục hiện tại để lưu trữ đầu ra của chương trình. 2.kill command: Nó được sử dụng để gửi tín hiệu đến quá trình để chấm dứt quá trình chạy. Các tín hiệu thường được sử dụng là SIGKILL, SIGTERM, v.v. 3. Cách sử dụng lệnh kill để chấm dứt quá trình chạy nohup Để chấm dứt một tiến trình chạy bởi nohup, trước tiên chúng ta cần biết PID (Process Identifier) của tiến trình. PID có thể thu được bằng cách làm theo các bước sau: 1. Sử dụng lệnh ps để tìm quá trình: nhập 'ps-ef|grep[keyword]' vào thiết bị đầu cuối, trong đó từ khóa có thể là tên chương trình hoặc một phần của lệnh. Điều này sẽ liệt kê tất cả các quá trình liên quan và PID của chúng. 2. Xác định vị trí PID của quá trình mà nohup đang chạy. Sau đó, chúng ta có thể sử dụng lệnh kill để chấm dứt quá trình. Cú pháp cơ bản như sau: ''Vỏ kill - PID loại tín hiệu ``` Loại tín hiệu có thể là SIGTERM (tín hiệu mặc định, yêu cầu chấm dứt quá trình) hoặc SIGKILL (buộc chấm dứt quá trình). PID là mã định danh quá trình của quá trình mà chúng ta muốn chấm dứt. Ví dụ, nếu bạn muốn chấm dứt một quá trình chạy với một nohup với PID 1234, bạn có thể nhập lệnh sau: ''Vỏ giết SIGTERM1234 ``` Nếu quá trình không thể kết thúc một cách duyên dáng, bạn có thể thử sử dụng tín hiệu SIGKILL: ''Vỏ giết-SIGKILL1234 ``` 4. Biện pháp phòng ngừa 1. Trong khi sử dụng lệnh kill, hãy đảm bảo bạn có đủ quyền để chấm dứt quá trình đích. Một số hệ thống có thể yêu cầu đặc quyền quản trị viên để chấm dứt các quy trình nhất định. 2. Khi chấm dứt một quá trình, hãy đảm bảo rằng bạn không vô tình chấm dứt các quy trình hệ thống quan trọng khác hoặc các chương trình đang chạy. 3. Nếu bạn đang chạy một tập lệnh với nohup và tập lệnh chứa các tiến trình con khác, bạn có thể cần phải chấm dứt các tiến trình con này cùng một lúc, nếu không chúng có thể tiếp tục chạy trong nền. Bạn có thể sử dụng lệnh 'pkill' để chấm dứt tất cả các quy trình liên quan trong một nhóm quy trình dựa trên tên của chúng. 5. Tóm tắt Chủ đề này mô tả cách chạy lệnh kill để chấm dứt một tiến trình đang chạy trong nohup trên Linux. Đầu tiên, chúng ta cần tìm PID của tiến trình bằng lệnh ps, sau đó sử dụng lệnh kill để gửi tín hiệu SIGTERM hoặc SIGKILL để chấm dứt quá trình. Khi sử dụng các lệnh này, hãy đảm bảo rằng bạn có đủ đặc quyền và bạn không vô tình chấm dứt các quy trình hệ thống quan trọng khác hoặc các chương trình đang chạy. Hy vọng rằng, bài viết này sẽ giúp bạn quản lý tốt hơn các chương trình đang chạy ngầm trên hệ thống Linux của bạn.