相关疑难解决方法(0)

Django和root进程

在我的Django项目,我需要能够检查局域网上的主机是否可达使用ICMP的ping.我发现这个SO问题解决了如何在Python中ping某些东西以及这个SO问题链接到解释如何使用sodoers文件的资源.

那个设定

一个Device模型存储在LAN上的主机的IP地址,并添加了新的后Device(通过自定义视图,而不是管理员)我设想检查,看看设备响应于使用AJAX调用的一个ping实例数据库公开该功能的API.

问题

但是(从第一个SO问题中建议的库的文档字符串开始)"请注意,ICMP消息只能从以root身份运行的进程发送."

我不想以root用户身份运行Django,因为这是不好的做法.但是,此过程的一部分(发送和ICMP ping)需要以root身份运行.如果使用Django视图我希望发送一个ping数据包来测试主机的活跃性,那么Django本身需要以root身份运行,因为那是调用ping的进程.

解决方案

这些是我能想到的解决方案,我的问题是有没有更好的方法只能以root身份执行Django项目的选择部分,除了这些:

  1. 以root身份运行Django(请不要!)
  2. 在队列中放置一个"ping请求",另一个进程 - 以root身份运行 - 可以定期检查和完成.也许像芹菜这样的东西.

有没有更简单的方法?

我想要像"Django以root身份运行"库这样的东西,这可能吗?

python django ping root django-views

5
推荐指数
1
解决办法
2501
查看次数

标签 统计

django ×1

django-views ×1

ping ×1

python ×1

root ×1