请教 Django runserfer 开机自启动的问题

hwhtj · 2024-7-23 09:39:05 · 172 次点击
/etc/systemd/system/rc-local.service 文件内容:
```[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99

[Install]
WantedBy=multi-user.target
```

/etc/rc.local 文件内容
```
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
echo "看到这行字,说明添加自启动脚本成功。" > /home/some/Qexo/test.log
a=`lsof -i:8000 | wc -l`
if [ "$a" -eq "0" ];then
        echo "start nohup django:8000" >> /home/some/Qexo/test.log
              nohup  /usr/bin/python3 /home/some/Qexo/manage.py runserfer 0.0.0.0:8000 > cmdb.log 2>&1 &
        else
        echo "8000 端口被占用" >> /home/some/Qexo/test.log
fi
#source/home/some/Qexo/
#nohup /usr/bin/python3 /home/some/Qexo/manage.py runserfer 0.0.0.0:8000 > cmdb.log 2>&1 &
echo "看到这行字,说明 django.sh 执行过。" >> /home/some/Qexo/test.log
exit 0
```
重启后,sudo systemctl status rc-local,报如下错误

```
  rc-local.service - /etc/rc.local Compatibility
     Loaded: loaded (/etc/systemd/system/rc-local.service; enabled; preset: enabled)
    Drop-In: /usr/lib/systemd/system/rc-local.service.d
             └─debian.conf
     Active: failed (Result: exit-code) since Tue 2024-07-23 09:22:23 CST; 15min ago
   Duration: 236ms
    Process: 3617 ExecStart=/etc/rc.local start (code=exited, status=0/SUCCESS)
   Main PID: 3621 (code=exited, status=1/FAILURE)
        CPU: 344ms

7 月 23 09:22:23 some-Ubuntu23 systemd[1]: Starting rc-local.service - /etc/rc.local Compatibility...
7 月 23 09:22:23 some-Ubuntu23 systemd[1]: Started rc-local.service - /etc/rc.local Compatibility.
7 月 23 09:22:23 some-Ubuntu23 systemd[1]: rc-local.service: Main process exited, code=exited, status=1/FAILURE
7 月 23 09:22:23 some-Ubuntu23 systemd[1]: rc-local.service: Failed with result 'exit-code'.
```
举报· 172 次点击
登录 注册 站外分享
11 条回复  
byaiu 小成 2024-7-23 09:42:39
猜测是 pythonpath 的问题
依赖是不是全局装的?
而且不是有 log 么,看看 log 就好了
Vegetable 小成 2024-7-23 09:44:18
一方面,你至少把你的 test.log 放出来,免得大家肉眼检查脑内运行帮你看问题。
另一方面,你这个需求其实很适合将服务放在 dcoker 里边自动启动,全是好处。
lingeo 小成 2024-7-23 09:46:09
1.直接 bash 运行 rc.local 脚本试一下有没有报错。
2.推荐你使用 supervisor 管理进程。
Spute 小成 2024-7-23 09:53:16
1 、切到项目目录,以前台模式直接执行/usr/bin/python3 /home/some/Qexo/manage.py runserfer 0.0.0.0:8000 ,进行 debug
2 、建议使用 docker 部署这种 web 服务器
dolphintwo 小成 2024-7-23 10:31:03
写一个 django 的 service 再 enable 它
djasdjds 小成 2024-7-23 10:50:22
人才
pililink 小成 2024-7-23 13:47:04
推荐你使用 supervisor 管理进程
skyrim61 小成 2024-7-24 08:47:03
使用 gunicorn 部署
zcybupt2016 小成 2024-7-24 14:30:41
建议打 docker + 1 ,省事得多
12下一页
返回顶部