Là nhà phát triển hoặc quản trị viên hệ thống, chúng tôi thường cần chạy các chương trình hoặc tập lệnh trong nền có thể tiếp tục chạy ngay cả sau khi chúng tôi thoát khỏi thiết bị đầu cuối hoặc đóng phiên. Đó là nơi lệnh nohup có ích. Bài viết này sẽ giới thiệu cách cài đặt và sử dụng lệnh nohup trên hệ thống Ubuntu. 1. NOHUP là gì? Đầu tiên, chúng ta hãy hiểu ý nghĩa của nohup. "Nohup" là chữ viết tắt của "NoHangup" hoạt động bằng cách tạm dừng quá trình khi bạn thoát khỏi thiết bị đầu cuối hoặc đóng phiên, v.v., để ngăn việc chấm dứt thiết bị đầu cuối hoặc thoát quá trình. Điều này cho phép chúng tôi để chương trình chạy trong nền và bỏ qua tín hiệu treo máy (ví dụ: ngắt kết nối các phiên SSH). Điều này đặc biệt hữu ích cho các quy trình chạy dài. 2. Cài đặt Nohup (không cần cài đặt) Cần lưu ý rằng trong hầu hết các bản phân phối Linux, bao gồm Ubuntu, lệnh nohup thường đã được cài đặt sẵn trên hệ thống, vì vậy không cần phải cài đặt riêng. Chỉ cần bật thiết bị đầu cuối và bạn đã sẵn sàng để đi. Bạn có thể kiểm tra xem lệnh nohup đã được cài đặt trên hệ thống chưa bằng cách gõ "whichnohup". Nếu đường dẫn được trả về, thì lệnh nohup đã được cài đặt trên hệ thống của bạn. Nếu không có gì được trả lại, bạn có thể cần phải nâng cấp hệ thống của mình hoặc cài đặt thủ công. Nhưng hầu hết thời gian, người dùng Ubuntu không cần phải lo lắng về vấn đề này. Phần 3: Làm thế nào để sử dụng lệnh nohup? Sử dụng lệnh nohup rất đơn giản. Chỉ cần thêm từ khóa nohup trước dòng lệnh. Ví dụ: nếu bạn muốn chạy tập lệnh có tên "myscript.sh" trong nền, bạn có thể thực hiện việc này: ''Ầm ầm nohup./myscript.sh& ``` Ở đây, vai trò của biểu tượng "&" là làm cho lệnh chạy trong nền. "Nohup" sẽ khiến quá trình tiếp tục chạy bất chấp tín hiệu gác máy, ngay cả khi bạn đóng phiên đầu cuối. Sau khi chạy lệnh trên, nohup sẽ tạo ra một tệp có tên "nohup.out" trong thư mục hiện tại, chứa thông tin đầu ra của tiến trình. Bạn cũng có thể thay đổi vị trí của tệp đầu ra mặc định bằng cách chỉ định tệp đầu ra. Chẳng hạn: ''Ầm ầm nohup./myscript.sh>myscript.log2>&1& ``` Trong ví dụ này, ">myscript.log" chuyển hướng stdout đến tệp có tên "myscript.log" và "2>&1" chuyển hướng đầu ra sai sang stdout, là "myscript.log". Bằng cách này, bạn có thể thấy tất cả các thông báo đầu ra và lỗi trong một tệp. 4. Xem và quản lý các quy trình nền Bạn có thể sử dụng nhiều lệnh khác nhau để xem và quản lý các quy trình nền. Ví dụ: lệnh "psaux" có thể liệt kê tất cả các quy trình đang chạy, lệnh "trên cùng" có thể xem trạng thái quy trình trong thời gian thực, v.v. Bạn cũng có thể sử dụng lệnh "kill" để kết thúc một quá trình nền cụ thể hoặc chạy tập lệnh. Nếu bạn muốn biết cách dừng một tập lệnh cụ thể trong nền, chỉ cần tra cứu ID tiến trình của tập lệnh (bạn có thể sử dụng "pgrep" hoặc xem các lệnh thông tin quy trình khác) và kết thúc nó bằng lệnh kill. Ví dụ: "kill-9", trong đó PID là ID của quá trình bạn muốn dừng. Cũng cần lưu ý rằng "kill-9" là một phương pháp để buộc kết thúc quá trình, điều này có thể ảnh hưởng đến trạng thái quy trình của công việc chưa được lưu hoặc các quy trình phụ thuộc khác, vì vậy hãy thận trọng khi sử dụng nó. Nếu bạn muốn kết thúc một cách an toàn một quá trình hoặc chạy tập lệnh, hãy sử dụng cơ chế tắt máy duyên dáng được xác định trong tập lệnh, nếu có. Tóm lại, điều quan trọng là đảm bảo bạn hiểu các quy trình của mình và cách quản lý chúng. Nắm vững các kỹ năng này có thể giúp bạn quản lý tài nguyên hệ thống của mình hiệu quả hơn và tránh các vấn đề tiềm ẩn. Tóm lại, lệnh nohup là một trong những công cụ rất hữu ích trong Linux, đặc biệt là khi nói đến các tác vụ nền chạy dài. Nắm vững cách sử dụng nó có thể làm cho công việc của bạn hiệu quả và đáng tin cậy hơn. Hy vọng bài viết này sẽ giúp bạn hiểu cách cài đặt và sử dụng lệnh nohup trên Ubuntu để quản lý tốt hơn và tối ưu hóa hiệu quả sử dụng hệ thống và tài nguyên của bạn nhé!