在Python中,如何使进程在用户请求时执行某些操作?

在Python中,如何使进程在用户请求时执行某些操作?,python,Python,不知何故,我对如何实施感到困惑。许多应用程序为用户提供了在其内部启动某些操作的能力,而无需重新启动应用程序。更清楚地说,“/etc/init.d/apache2 reload”将强制Apache进程在不重新启动的情况下重新加载其配置文件。如何为我的Python应用程序实现相同的方法 您可以通过定义方法在python中重置应用程序: import sys import os def restart_program(): python = sys.executable os.exec

不知何故,我对如何实施感到困惑。许多应用程序为用户提供了在其内部启动某些操作的能力,而无需重新启动应用程序。更清楚地说,“/etc/init.d/apache2 reload”将强制Apache进程在不重新启动的情况下重新加载其配置文件。如何为我的Python应用程序实现相同的方法

您可以通过定义方法在python中重置应用程序:

import sys
import os
def restart_program():
    python = sys.executable
    os.execl(python, python, * sys.argv)
然后让用户根据请求启动此代码:

if __name__ == "__main__":
    answer = raw_input("Do you want to restart this program ? ")
    if answer == "yes":
        restart_program()
此代码取自。Apache会根据命令重置,因为编写程序是为了接受这样的命令,因为python是一种用于创建程序的语言,所以需要实现此功能

如果您只想重置一些变量,则可以执行以下操作:

def reset_var():
    global var1
    global var2
    var1 = 0
    var2 = 0
重新加载文件:

file = open('words.txt', 'r')

def reloadfile():
    file.close()
    file = open('words.txt', 'r')

/etc/init.d/目录包含一系列管理服务的脚本。您可以在此目录中创建一个新脚本,以允许启动/停止/重新启动您编写的任何程序。用于启动和停止的命令进入此目录,而不是程序。例如,要停止服务,这些脚本中的许多只调用“kill”或“killall”命令

以下是一些描述目录以及如何为其创建自己的脚本的链接:


这是一个广泛的问题。在一个功能中重新加载配置进程。提供一种从外部控制过程行为的机制是不同的。你想把注意力集中在哪里?@pajton,我在寻找更概念化的答案。F.e.我猜实现它的一种方法是实际启动新进程,从中定位原始进程,通过kill-USR1$PID发送信号,然后等待输出。但是我被有限的信号所困扰。另一方面,我不确定这些事情是如何实现的,这就是为什么我要求社区提供他们的知识。这实际上会重新启动程序。可能有一些繁重的计算正在进行,或者有人通过套接字服务器连接到应用程序,当然我们不希望中途中断所有进程。然后定义一个方法来完成此操作:
def reset_var():global var1;全球var2;var1=0;var2=0