Django教程
- Jinja2配置自定义过滤器
- Django教程-定时任务crontab
- 解决uwsgi报错:No such process [core/uwsgi.c line 1693]
- 解决-doesn't declare an explicit app_label and isn't in an application in INSTALL
- Django教程-Model字段大全,选项详解
- Django教程-子应用添加后台管理
- Django教程-安装DjangoUeditor3
- Django教程-设置默认导包路径
- Django教程-Django配置redis
- Django教程-django配置mysql数据库
- Django教程-uwsgi配置详解
- 解决:Django定时器无法启动
- Django教程-Django中配置jinja2模板
- Django教程-创建一个最简单的django项目
解决:Django定时器无法启动
解决:Django定时器无法启动
解决:Django定时器无法启动
今天在重启了服务器之后,发现django定时器没法启动,如下:
如上图提示,首先定位到/var/spool/cron/,是这个文件夹没有写入权限,本来想想,那不是很简单吗,直接用root把这个文件夹加一个写权限不就行了:chmod g+w /var/spool/cron/
然后再重启定时器,但是但是发现还是提示一样的错误,这就纳闷了,明明是已经添加了写权限,而且还是用root,为什么还是不行呢?
一般我们都知道,Linux下root用户的权限是最大了,难道还有root用户操作不了的文件?一番摸索之后,发现了问题所在:
1,上面我们执行的chmod命令,其底层实现是chattr命令,用此命令的功能更为强大,甚至可以锁定文件,即使root用户也操作不了此文件。
2,chattr是用来更改文件属性,lsattr可用来查看文件的属性,执行命令lsattr /var/spool/cron/便可以看到当前文件夹的属性;可以发现夹当前文件有个i属性,查阅命令帮助文档可以看到有i属性的文件夹是不能修改的,更不可被删除,即使是root用户也不可。
既然知道了文件夹不能操作的原因是加了i属性,所以相应的解决方案就是把文件夹的i属性去除,然后对此文件(文件夹)内容进行修改,最好在操作完成后恢复文件的i属性。
去除i属性:chattr -i cron 添加i属性的话就是+i,然后在chmod g+w /var/spool/cron/,然后用ls -al查看一下权限:这是发现cron已经有写入权限了
然后再重启django定时器,成功,问题解决。如下图
最后修改:2020年3月19日 02:55