[英]How to continue to executing running python process in background
可能問題是晦澀的。 下面的示例代碼用於闡明。
# file: sock.py
password = getpass.getpass("Password: ")
def run_socket_server():
with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as s:
# code...
if __name__ == "__main__":
run_socket_server()
運行腳本
python sock.py
Password: # enter password
此后,該進程不會在后台運行,從而阻止了終端中的用戶輸入。 所以問題是如何繼續在后台執行python進程以允許用戶在終端中輸入?
此解決方案假定您想不變地使用Python程序。
當您的程序要求輸入密碼時,它必須首先在前台運行。 運行為
python sock.py &
當它想讀取密碼時,將通過信號SIGTTIN
停止它。 這就是為什么像您一樣在前台啟動它的原因。
如果在讀取密碼后不需要任何其他終端輸入,則可以在按CTRL + Z輸入密碼后將其停止,然后通過執行bg
將其發送到后台。
(如果由於某種原因,您需要將作業重新放在前台,例如要提供輸入,請執行fg
。)
您想在后台運行python代碼時訪問終端,可能需要在末尾添加&符
python sock.py &
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.