V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
popstk
V2EX  ›  Python

Python 程序如何优雅的退出? Windows 下 Python 如何后台启动?

  •  
  •   popstk ·
    popstk · 2015-08-19 16:45:14 +08:00 · 5412 次点击
    这是一个创建于 3378 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问题 1 : Python 程序如何优雅的退出?
    看到有些程序是直接找到 pid 然后 kill 掉的,总感觉不是很妥当
    还是用信号,通知退出

    问题 2 : Windows 下 Python 如何后台启动?
    正做一个定时执行的工具,要兼容 Windows ,有个窗口不太好,
    看到别人的都是使用服务加载的 http://blog.csdn.net/dysj4099/article/details/21896085
    觉得要别人安装一个 pywin32 ,只达到一个隐藏窗口的功能,成本略高,
    大家是怎么处理这种情况的?

    12 条回复    2015-09-25 12:29:16 +08:00
    volqiu
        1
    volqiu  
       2015-08-19 17:12:12 +08:00   ❤️ 1
    python 其实 powershell 是可以调用 python 的,但是 windows 计划任务并不支持调用 powershell 。计划任务跑一个 bat , bat 调用 powershell , powershell 调用 python 。好像也是蛮蛋疼的。
    loading
        2
    loading  
       2015-08-19 17:14:54 +08:00   ❤️ 1
    2.xyntservice 一直在用,还有一个功能更全,名字忘了。
    wowo2088
        3
    wowo2088  
       2015-08-19 17:28:02 +08:00   ❤️ 1
    2 试试 .pyw
    Tink
        4
    Tink  
       2015-08-19 18:47:17 +08:00 via iPhone   ❤️ 1
    已然 kill 习惯了😂
    mengzhuo
        5
    mengzhuo  
       2015-08-19 19:47:32 +08:00   ❤️ 1
    kill 就是发信号
    MrGba2z
        6
    MrGba2z  
       2015-08-19 20:05:01 +08:00 via iPhone   ❤️ 1
    已 kill 成性
    pc10201
        7
    pc10201  
       2015-08-19 21:35:59 +08:00   ❤️ 1
    autoit 可以隐藏命令行窗口
    jjx
        8
    jjx  
       2015-08-20 07:44:31 +08:00   ❤️ 1
    不想做服务, 用 pywin32 的话, 随便用 srvany 之类的工具就行了, 类似的还有很多
    2owe
        9
    2owe  
       2015-08-20 11:58:27 +08:00 via iPhone   ❤️ 1
    supervisor 不知道符合条件不
    kaneg
        10
    kaneg  
       2015-08-20 23:15:35 +08:00   ❤️ 1
    程序自己监听一个端口,需要停止的时候,给这个端口发个命令,程序自己调用 sys.exit ()退出。
    popstk
        11
    popstk  
    OP
       2015-09-25 12:21:04 +08:00
    @mengzhuo 是的,学艺不精,多谢提醒
    popstk
        12
    popstk  
    OP
       2015-09-25 12:29:16 +08:00
    最后在 windows 后台的方法用了服务,退出的方法是循环等待一个代表退出事件。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2881 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 14:45 · PVG 22:45 · LAX 06:45 · JFK 09:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.