如何继续在后台执行正在运行的python进程

时间:2019-03-14 11:38:07

标签: python linux shell

问题可能是晦涩的。下面的示例代码用于阐明。

# 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进程以允许用户在终端中输入?

2 个答案:

答案 0 :(得分:2)

此解决方案假定您想不变地使用Python程序。

当您的程序要求输入密码时,它必须首先在前台运行。以

运行
@Document(collection = "#{@entitiesProperties.getAdmissions()}")

在要读取密码时会通过信号python sock.py & 停止它。这就是为什么像您一样在前台启动它的原因。

如果在读取密码后不需要任何其他终端输入,则可以在输入密码后按 CTRL + Z 将其停止,然后将其发送到通过执行SIGTTIN来实现背景。

(如果由于某种原因,您需要将工作重新放在前台,例如提供输入,请执行bg。)

答案 1 :(得分:0)

您要在后台运行python代码时访问终端,可能需要在末尾添加和号

python sock.py &