2024-09-28 23:30:11 发布
网友
我想使用os.execv将当前进程替换为一个新进程,除非您没有任何参数,否则此操作正常。
即使我没有参数要传递给我要启动的进程,我如何调用它?
# Works fine, unless the arguments tuple wouldn't exist or be empty os.execv('process.exe', ('arg1', 'arg2'))
这三种变体可以解决问题:
cmd = '/usr/bin/vi' os.execv(cmd, ('',)) os.execv(cmd, ['']) os.execl(cmd, '')
通常,参数列表(sys.argv)的第一个参数是用于调用应用程序的命令。 因此,最好使用以下方法之一:
cmd = '/usr/bin/vi' os.execv(cmd, (cmd,)) os.execv(cmd, [cmd]) os.execl(cmd, cmd)
os.exec* documentation on python.org
好吧,在询问了IRC之后,他们指出了为什么会这样。
第一个参数(arg0)通常是正在执行的文件名(例如sys.argv[0]),因此第一个参数应该始终是文件名。
这解释了为什么参数不是可选的,在IRC上,他们说arg0是应用程序认为它的名称。
这对我有用
os.execv('process',())
你确定你的process工作没有参数吗?
process
或者试试execl
os.execl('process')
这三种变体可以解决问题:
通常,参数列表(sys.argv)的第一个参数是用于调用应用程序的命令。 因此,最好使用以下方法之一:
os.exec* documentation on python.org
好吧,在询问了IRC之后,他们指出了为什么会这样。
第一个参数(arg0)通常是正在执行的文件名(例如sys.argv[0]),因此第一个参数应该始终是文件名。
这解释了为什么参数不是可选的,在IRC上,他们说arg0是应用程序认为它的名称。
这对我有用
你确定你的
process
工作没有参数吗?或者试试execl
相关问题 更多 >
编程相关推荐