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

时间:2014-02-25 18:32:34

标签: python

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

2 个答案:

答案 0 :(得分:0)

您可以通过定义一个方法来重置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()

此代码取自here。 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')

答案 1 :(得分:0)

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

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

http://www.ghacks.net/2009/04/04/get-to-know-linux-the-etcinitd-directory/ http://www.tldp.org/HOWTO/HighQuality-Apps-HOWTO/boot.html