Con trăn Nohup không hoạt động
Ampersand chạy tập lệnh trong lớp con, vì vậy nếu bạn đăng xuất khỏi lớp vỏ hiện tại, lớp con sẽ bị chấm dứt. Ngoài ra, điều này sẽ không chuyển tiếp bất kỳ đầu ra nào nên chúng tôi cần thực hiện thủ công Show Ví dụ// this does not collect any output, but still print output to stdout (on console). // it just does not receive ctrl+c python test.py & // this writes output to specified file, does not write anything to console. python test.py > log.txt & // this writes error to specified file, but still print normal output to stdout. python test.py 2> log.txt & nohup python test.py &3nohup python test.py & 3 chạy tập lệnh ở chế độ nền và sẽ không bị hủy khi bạn đăng xuất khỏi trình bao hiện tại. Quá trình sẽ bị hủy khi gửi tín hiệu nohup python test.py & 5 (_______16) hoặc nohup python test.py & 7 PID trực tiếp. Đầu ra sẽ được chuyển tiếp đến nohup python test.py & 8 trong thư mục đang chạy lệnh tôi đang chạy csh. Tôi đã thử đợt Nohup /bin/sh. sh & và một số biến thể khác và nó cũng không hoạt động Tôi đã sử dụng Nohup thành công trên các máy chủ này hoạt động với các chương trình khác. Tôi thường xuyên sử dụng Nohup. /Chủ yếu. out > /dev/null & và sẽ chạy chương trình trong nhiều ngày Tôi không chắc liệu tập lệnh Shell của mình không hoạt động hay không vì tôi đang chuyển đầu ra của nhiều lần chạy python sang những thứ khác nhau hay cái gì Giải quyết vấn đề nhỏ nhất ở đây là một tập lệnh python đơn giản mà tôi muốn chạy bằng Nohup trên linux. Tôi chạy nó bằng cách sau (trên linux)
Lệnh dường như không làm gì cả, không có gì được thêm vào Nohup. ngoài. Nếu tôi chạy nó mà không có & thì đầu ra hiển thị chính xác trên cửa sổ đầu cuối. Tôi đang thiếu gì?
Giải pháp tốt nhấtTruyền cho python cờ -u để bỏ bộ đệm thiết bị xuất chuẩn
Python sẽ đệm thiết bị xuất chuẩn nếu không. Điều này không yêu cầu thay đổi mã Từ trang người đàn ông ________số 8Giải pháp liên quanPython – Cách chuẩn để kiểm tra loại trong Python là gìĐể kiểm tra xem 3 có phải là phiên bản của 4 hay bất kỳ lớp con nào của 4 hay không, hãy sử dụng isinstance (đây sẽ là cách "chính tắc")nohup python test.py & 2Để kiểm tra xem loại 3 có chính xác là 4 hay không (loại trừ các phân lớp)nohup python test.py & 5Những điều sau đây cũng hoạt động và có thể hữu ích trong một số trường hợp nohup python test.py & 6Xem Các hàm tích hợp trong Tham khảo thư viện Python để biết thông tin liên quan Một lưu ý nữa. trong trường hợp này, nếu bạn đang sử dụng Python 2, bạn có thể thực sự muốn sử dụng nohup python test.py & 7bởi vì điều này cũng sẽ bắt các chuỗi Unicode ( 8 không phải là lớp con của 4; cả 4 và 8 đều là lớp con của 2). Lưu ý rằng 2 không còn tồn tại trong Python 3, nơi có sự phân tách nghiêm ngặt giữa chuỗi ( 4) và dữ liệu nhị phân ( 5)Ngoài ra, 6 chấp nhận một bộ lớp. Điều này sẽ trả về 7 nếu 3 là một thể hiện của bất kỳ phân lớp nào của bất kỳ 9 nàonohup python test.py & 0Python – Cách kiểm tra phiên bản Python nào đang chạy tập lệnhThông tin này có sẵn trong chuỗi 0 trong mô-đun 1nohup python test.py & 3Con người có thể đọc được 0Để xử lý thêm, hãy sử dụng 2 hoặc 3 1Để đảm bảo tập lệnh chạy với yêu cầu phiên bản tối thiểu của trình thông dịch Python, hãy thêm phần này vào mã của bạn 2Điều này so sánh thông tin phiên bản chính và phụ. Thêm vi mô (= 4, 5, v.v.) và thậm chí cả cấp độ phát hành (= 6, 7, v.v.) vào bộ dữ liệu theo ý muốn của bạn. Tuy nhiên, xin lưu ý rằng tốt hơn hết là bạn nên "lẩn tránh" kiểm tra xem có một tính năng nào đó hay không và nếu không, hãy giải quyết (hoặc cứu trợ). Đôi khi các tính năng biến mất trong các bản phát hành mới hơn, được thay thế bằng các tính năng khác
Làm cách nào để chạy tập lệnh trong nền bằng Nohup?Để chạy lệnh Nohup trong nền, thêm & (dấu và) vào cuối lệnh . Nếu lỗi tiêu chuẩn được hiển thị trên thiết bị đầu cuối và nếu đầu ra tiêu chuẩn không được hiển thị trên thiết bị đầu cuối cũng như không được gửi đến tệp đầu ra do người dùng chỉ định (tệp đầu ra mặc định là Nohup.
Làm cách nào để chạy tập lệnh python trong nền ngay cả sau khi tôi đăng xuất?Vai trò của nohup. nohup làm cho tập lệnh của bạn bỏ qua SIGHUP và chuyển hướng thiết bị xuất chuẩn/thiết bị xuất chuẩn tới một tệp nohup. ra để lệnh có thể tiếp tục chạy trong nền sau khi bạn đăng xuất. Nếu bạn đóng shell/terminal hoặc đăng xuất, lệnh của bạn không còn là con của shell đó nữa.
Làm cách nào để kiểm tra bất kỳ tập lệnh nào đang chạy trong nền Linux bằng python?Chúng tôi sẽ sử dụng quy trình con. các phương thức checkout() để lấy tất cả các tiến trình đang chạy . Lệnh chạy này với đối số và trả về đầu ra. stderr=tiến trình con.
Nohup hoạt động như thế nào trong Linux?Nohup, viết tắt của no hang up là một lệnh trong hệ thống Linux giữ cho các tiến trình chạy ngay cả sau khi thoát khỏi trình bao hoặc thiết bị đầu cuối. Nohup ngăn các quy trình hoặc công việc nhận tín hiệu SIGHUP (Tín hiệu treo máy) . Đây là tín hiệu được gửi đến một quy trình khi đóng hoặc thoát khỏi thiết bị đầu cuối. |