python - 为什么如果手动激活程序但不能作为使用 crontab、mysql 和 python 的守护程序激活,程序会运行良好?
问题描述
我们有这段代码,其目的只是为了在 MySQLWorkbench 的数据库中发布:
import pymysql.cursors
import os, time
import datetime
#Conexion a la base de datos
conn = pymysql.connect(‘example.example.us-west-2.rds.amazonaws.com', user= ‘xxxx', port= xxxx, passwd = ‘xxxxx', db=‘xxxx')
def query():
fecha = (str) (datetime.datetime.now())
nfecha = fecha.split(' ')
dia = nfecha[0]
hora = nfecha[1]
tabla='notificaciones'
idcliente='1'
notificacion='hola'
tipo='saludo'
with conn.cursor() as cursor:
cursor.execute('insert into notificaciones(idcliente, notificacion, tipo, fecha, hora) values(%s, %s, %s, %s, %s)', (idcliente, notificacion, tipo, dia, hora))
conn.commit()
print('success')
def main():
query()
main()
在控制台中手动执行时,代码运行良好,但是,当我们想将其设置为守护进程时,使用 crontab,它什么也不做。
在 crontab 中尝试过这种方式:
sudo su
crontab -e
@reboot sudo python /home/pi/Desktop/DataBase.py
我试过从另一个程序调用它,并且已经作为一个单独的程序调用它。它根本不起作用。
帮助。
解决方案
sudo 不在 crontab 命令中运行。它通常需要配置显式的 tty 或 visudo 异常。
如果您确实需要 sudo 权限,请在 root 用户下配置此 crontab(不带 sudo),您似乎已经在这样做了。就这些了。
IE
sudo su
crontab -e
@reboot python /home/pi/Desktop/DataBase.py
推荐阅读
- azure - 遵循 azurestack 的 technet 指南,遇到 powershell 存储库错误
- javascript - JS XMLHttpRequest() Connect.open 适用于文件夹中的文件,但不适用于 http
- javascript - 自动完成在 Express.js 代码中不起作用
- elasticsearch - 使用 grok 拆分消息
- java - 授予 OAuth2 令牌时如何限制用户的范围?
- excel - Excel 中有多个 IF 函数:如何覆盖一个函数而不是另一个函数
- python - BeautifulSoup 无法从页面中找到数据
- python - 使用beautifulsoup python在跨度类HTML中刮取值
- winapi - 如何使用我自己的清单文件并将其嵌入到使用 Visual Studio 2017 的可执行文件中?
- javascript - 为什么返回在当前函数之外定义的函数不创建闭包?