V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
iugo
V2EX  ›  问与答

Linux 下如何开机自动运行 Python 脚本?

  •  
  •   iugo · 2015-11-14 10:46:36 +08:00 · 4550 次点击
    这是一个创建于 3324 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Ubuntu Trusty. 尝试了两种方法, 均出了问题.

    1. 直接修改 /etc/rc.local
    2. Startup Applications

    使用第二种方法可以开机运行程序, 如 subl.

    我尝试开机自动运行的:

    python /usr/local/bin/sslocal -c ~/ssconfig.json

    14 条回复    2015-11-14 21:58:22 +08:00
    V69EX
        1
    V69EX  
       2015-11-14 10:52:40 +08:00   ❤️ 1
    估计是用户、环境变量相关的原因。。。。
    msg7086
        2
    msg7086  
       2015-11-14 10:55:50 +08:00   ❤️ 1
    自己写个 upstart 脚本。或者升级到 systemd 以后自己写个 systemd 脚本。很短的。
    crazyxin1988
        3
    crazyxin1988  
       2015-11-14 10:56:24 +08:00   ❤️ 1
    supervisor
    aver4vex
        4
    aver4vex  
       2015-11-14 10:58:54 +08:00
    拷贝一份现成的启动脚本,比如 sshd ,稍微改一下不就可以了。
    wm5d8b
        5
    wm5d8b  
       2015-11-14 11:04:57 +08:00 via Android   ❤️ 1
    ~/ssconfig.json 指的是用户目录下的 ssconfig.json 吧, rc.local 运行就是 /root/ssconfig.json
    derek80
        6
    derek80  
       2015-11-14 11:06:22 +08:00
    已经习惯用 systemd
    wm5d8b
        7
    wm5d8b  
       2015-11-14 11:07:47 +08:00 via Android
    此外,为什么不用 libev 版的。。
    iugo
        8
    iugo  
    OP
       2015-11-14 11:30:19 +08:00
    @msg7086 @derek80 感谢. 以前没听过 systemd...

    @crazyxin1988 有机会会好好学学 supervisor 的.

    @wm5d8b 的确是这个问题. 我用 /home/username 替代 ~ 就正常了. 另外, libev 还需要编译, 就偷懒使用 pip 安装 Python 版.
    sldaniel
        9
    sldaniel  
       2015-11-14 11:31:40 +08:00   ❤️ 1
    改成绝对路径试试。。我用 rc.local 是可以的。不过有的 vps 上面很奇怪,只能放 /etc 目录下才运行,放别的目录就不运行,可能是权限的问题。
    iugo
        10
    iugo  
    OP
       2015-11-14 11:35:25 +08:00
    @sldaniel
    @V69EX

    谢谢. 的确是用户的问题. 开机启动使用的用户不是我登录后的用户, 导致 ~ 不同让脚本找不到配置文件.
    Bryan0Z
        11
    Bryan0Z  
       2015-11-14 12:40:03 +08:00 via Android
    supervisor 全解决了,没必要折腾
    shenqi
        12
    shenqi  
       2015-11-14 13:29:57 +08:00
    su user -c 'python /usr/local/bin/sslocal -c ~/ssconfig.json'
    mickeyandkaka
        13
    mickeyandkaka  
       2015-11-14 19:16:10 +08:00
    /usr/bin/python 我之前就是发现在 rc.local 里面环境变量不对的。
    RqPS6rhmP3Nyn3Tm
        14
    RqPS6rhmP3Nyn3Tm  
       2015-11-14 21:58:22 +08:00 via iPad
    写绝对路径,之前就被这个给坑了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2686 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:47 · PVG 20:47 · LAX 04:47 · JFK 07:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.