我无法从python中的函数内部获取重新启动子进程调用来工作。
这是代码

#!/usr/bin/python
import subprocess
def rebootscript():
    print "rebooting system"
    command = "/sbin/reboot"
    subprocess.call(command, shell = True)

if __name__ == '__main__':
    rebootscript

如果我从主代码(而不是在函数中)运行相同的代码,它将起作用。我究竟做错了什么?

最佳答案

尝试调用实际函数:

if __name__ == '__main__':
    rebootscript()


表达式rebootscript将仅对函数对象求值而无需调用它。如果您在解释器中执行此操作,则会看到类似以下内容的内容:

<function rebootscript at 0xffe1b7d4>


括号意味着您想调用函数而不是仅仅对函数求值,并且可以在下面的脚本中看到区别:

$ python
Python 2.7.8 (default, Jul 28 2014, 01:34:03)
[GCC 4.8.3] on cygwin
Type "help", "copyright", "credits" or "license" for more information.

>>> def rebootscript():
...     print "Hello"
...

>>> rebootscript
<function rebootscript at 0xffe1bed4>

>>> rebootscript()
Hello

>>> _

关于python - 使用子进程调用从python函数重启Linux服务器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27289053/

10-17 03:09