giới thiệu ---- Khi sử dụng hệ điều hành Unix hoặc Linux, thường có một số tác vụ nền cần được thực hiện. Ví dụ: khi chạy một số tập lệnh hoặc chương trình nhất định yêu cầu thời gian xử lý dài, chúng tôi muốn các tác vụ đó tiếp tục chạy ngay cả sau khi 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ẽ chỉ cho bạn cách sử dụng lệnh 'nohup' kết hợp với tập lệnh shell, chỉ cho bạn cách chạy tập lệnh trong nền và đảm bảo nó không ngừng chạy vì thiết bị đầu cuối đã đóng. thân thể ---- Lệnh nohup là gì? 'Nohup' là chữ viết tắt của 'nohangup', cho phép người dùng chạy lệnh hoặc tập 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à ngay cả khi phiên đầu cuối bị đóng, lệnh hoặc tập lệnh sẽ tiếp tục chạy. Điều này đặc biệt hữu ích cho các tác vụ dài trên các máy chủ từ xa. Cách sử dụng cơ bản của lệnh nohup Cú pháp cơ bản là: 'nohupcommand>output_file2>&1&' Trong đó: - 'lệnh' là lệnh hoặc tập lệnh bạn muốn chạy. - 'output_file' là đầu ra tệp của lệnh, được sử dụng để lưu thông tin đầu ra. Nếu bạn không chỉ định tệp, đầu ra sẽ được lưu vào tệp có tên 'nohup.out' trong thư mục hiện tại theo mặc định. - '2>&1' là chuyển hướng đầu ra std / err sang stdout (tức là tệp đầu ra). Nếu không, lỗi tiêu chuẩn và đầu ra bình thường có thể trộn lẫn. Dấu '&' cuối cùng chỉ ra rằng lệnh đang chạy trong nền. Sử dụng nohup kết hợp với các tập lệnh shell Giả sử chúng ta có một tập lệnh shell được gọi là 'myscript.sh' và chúng ta muốn nó chạy liên tục trong nền, ngay cả khi chúng ta thoát khỏi thiết bị đầu cuối. Bạn có thể làm điều này bằng cách làm theo các bước sau: 1. Mở thiết bị đầu cuối và chuyển đến thư mục chứa 'myscript.sh'. Giả sử đó là '/home/user/scripts/'. Bạn có thể sử dụng lệnh 'cd/home/user/scripts/' để điều hướng đến thư mục đó. 2. Đảm bảo rằng tập lệnh có quyền thực thi và bạn có thể sử dụng lệnh 'chmod+xmyscript.sh' để cấp quyền. Sau đó thực thi tập lệnh để kiểm tra xem nó có hoạt động như mong đợi không. Nó có thể được chạy bằng lệnh './myscript.sh'. Nhưng hãy nhớ rằng khi nó chạy như thế này, nó đang chạy ở phía trước. Để chạy tập lệnh trong nền mà không chặn phiên đầu cuối, hãy sử dụng lệnh sau kết hợp với 'nohup': 'nohup./myscript.sh>myscript_output.log2>&1&'。 Điều này đảm bảo rằng ngay cả khi cửa sổ đầu cuối bị đóng hoặc phiên kết thúc, tập lệnh vẫn tiếp tục chạy trong nền. Nhật ký đầu ra được lưu trong tệp 'myscript_output.log'. Lưu ý rằng thay thế bằng thư mục và tên tệp thực tế của bạn. Nếu không có đường dẫn tệp đầu ra nào được chỉ định, đầu ra mặc định sẽ được lưu trong tệp 'nohup.out' trong thư mục hiện tại. Nếu bạn không cần xem nhật ký đầu ra, bạn có thể bỏ qua phần chuyển hướng (tức là xóa phần '>myscript_output.log2>&1'). Lúc này, tất cả đầu ra sẽ bị loại bỏ mà không ảnh hưởng đến quá trình chạy của chương trình. Nếu bạn muốn theo dõi trạng thái đang chạy của tập lệnh (chẳng hạn như liệu nó có còn chạy hay không), bạn có thể sử dụng lệnh 'psaux|grepmyscript.sh' để kiểm tra trạng thái của tiến trình. Nếu bạn cần dừng tập lệnh chạy, bạn có thể sử dụng lệnh 'kill' kết hợp với ID tiến trình để kết thúc quá trình. Các vấn đề phổ biến và giải pháp có thể phát sinh với nohup là các vấn đề về quyền: Nếu bạn không nhận được kết quả mong đợi khi cố gắng chạy tập lệnh hoặc báo cáo lỗi quyền, giải pháp thường là kiểm tra xem bạn có quyền chính xác để thực thi tập lệnh hay không, trong một số trường hợp, bạn có thể cần chạy lệnh này với tư cách quản trị viên, tại thời điểm này bạn có thể sử dụng sudo để chạy tập lệnh của mình hoặc kiểm tra lại quyền của tệp, thay đổi quyền của tệp bằng lệnh chmod cũng là một trong những giải pháp khả thi, cũng có một số câu hỏi về phiên nohup và terminal có thể yêu cầu bạn chú ý, chẳng hạn như cách xem nhật ký đầu ra của các tác vụ nền, v.v., như đã đề cập trước đó, sử dụng ps và grep để xem trạng thái quy trìnhNếu bạn muốn xem nhật ký, bạn có thể sử dụng lệnh cat hoặc tail để xem các tệp nhật ký tương ứng để đảm bảo rằng bạn có đường dẫn chính xác để truy cập các tệp này, tất nhiên, nó cũng phụ thuộc vào việc bạn đã đặt đường dẫn tệp đầu ra chính xác ngay từ đầu hay chưa, về các kỹ năng và kịch bản lập trình shell nâng cao khác, các kịch bản phức tạp hơn có thể liên quan đến quản lý quy trình phức tạp và lập lịch tài nguyên, chẳng hạn như các tác vụ tập lệnh cần chạy trong một thời gian dài, cần được xem xét và học hỏi đặc biệt, v.v., phương pháp xử lý cụ thể có thể khác nhau tùy thuộc vào nhu cầu cụ thể và môi trường hệ thống, tóm lại, Nohup là một công cụ mạnh mẽ để chạy các tập lệnh shell trong nềnBài viết này mô tả cách sử dụng nohup và các khái niệm và giải pháp liên quan của nó cho các vấn đề phổ biến, cung cấp giải thích thêm về các tập lệnh bashshell và các mẹo quản lý cơ bản cho các hệ thống Linux, có thể giúp người dùng dễ dàng hoàn thành các tác vụ khi họ cần thực hiện các tác vụ nền, hiểu và học các khái niệm cơ bản này sẽ giúp quản lý và sử dụng các hệ thống Linux hiệu quả hơn, để tìm hiểu và thảo luận sâu hơn, vui lòng tham khảo tài liệu liên quan hoặc tìm kiếm danh sách tài nguyên hỗ trợ kỹ thuật chuyên nghiệp, đây là một số liên kết đến các tài nguyên có thể được tham khảo, tài liệu cụ thể và liên kết hướng dẫn có thể thay đổi do cập nhật thời gian và nền tảngNên lựa chọn các nguồn học phù hợp để học theo tình hình thực tế: Các khóa học liên quan đến quản trị hệ thống Linux trong các khóa học trực tuyến của UdemyVideo hướng dẫn trực tuyếnBlog và diễn đàn chuyên nghiệp để khám phá các kỹ năng và kiến thức quản trị hệ thống Linux nâng cao hơnPhương pháp nghiên cứu điển hìnhCác blog kỹ thuật xuất sắc như Brother Bird's Home và các blog kỹ thuật nguồn mở chuyên nghiệp khácCác tài liệu cụ thể như Hướng dẫn chuyên gia lập trình ShellBashHướng dẫn cơ bảnHướng dẫn quản trị hệ thống Linux và các sách tóm tắt khác như bàn tay quản trị hệ thống Linux, v.v., những tài nguyên này có thể giúp bạn hiểu sâu hơn về quản trị hệ thống Linux và cách sử dụng các công cụ như nohup để quản lý tác vụ nâng cao, tôi hy vọng bài viết này có thể giúp bạn hiểu rõ hơnVà sử dụng nohup để chạy tập lệnh shell trong nền, nếu bạn có bất kỳ câu hỏi nào, chào mừng bạn đến giao tiếp và thảo luận, có thể nâng cao kiến thức và kỹ năng hơn nữa bằng cách đọc các tài liệu chuyên nghiệp và các khóa học trực tuyến, tôi chúc bạn học tập vui vẻ, cảm ơn bạn đã đọc