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

2015-11-14 10:46:36 +08:00
 iugo
Ubuntu Trusty. 尝试了两种方法, 均出了问题.

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

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

我尝试开机自动运行的:
```
python /usr/local/bin/sslocal -c ~/ssconfig.json
```
4533 次点击
所在节点    问与答
14 条回复
V69EX
2015-11-14 10:52:40 +08:00
估计是用户、环境变量相关的原因。。。。
msg7086
2015-11-14 10:55:50 +08:00
自己写个 upstart 脚本。或者升级到 systemd 以后自己写个 systemd 脚本。很短的。
crazyxin1988
2015-11-14 10:56:24 +08:00
supervisor
aver4vex
2015-11-14 10:58:54 +08:00
拷贝一份现成的启动脚本,比如 sshd ,稍微改一下不就可以了。
wm5d8b
2015-11-14 11:04:57 +08:00
~/ssconfig.json 指的是用户目录下的 ssconfig.json 吧, rc.local 运行就是 /root/ssconfig.json
derek80
2015-11-14 11:06:22 +08:00
已经习惯用 systemd
wm5d8b
2015-11-14 11:07:47 +08:00
此外,为什么不用 libev 版的。。
iugo
2015-11-14 11:30:19 +08:00
@msg7086 @derek80 感谢. 以前没听过 systemd...

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

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

谢谢. 的确是用户的问题. 开机启动使用的用户不是我登录后的用户, 导致 ~ 不同让脚本找不到配置文件.
Bryan0Z
2015-11-14 12:40:03 +08:00
supervisor 全解决了,没必要折腾
shenqi
2015-11-14 13:29:57 +08:00
su user -c 'python /usr/local/bin/sslocal -c ~/ssconfig.json'
mickeyandkaka
2015-11-14 19:16:10 +08:00
/usr/bin/python 我之前就是发现在 rc.local 里面环境变量不对的。
RqPS6rhmP3Nyn3Tm
2015-11-14 21:58:22 +08:00
写绝对路径,之前就被这个给坑了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/236138

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX