Crontab重新启动权限

时间:2019-02-21 08:11:40

标签: python cron

我有一个Python脚本,可以在脚本结尾重新启动设备。通过在sudoers文件中授予/sbin/shutdown的用户权限,我可以在用户帐户上正常运行。但是问题是,当我尝试使用用户的crontab使其自动化时,出现以下错误:

sudo: no tty present and no askpass program specified

任何想法如何解决问题?我以为用户的crontab与用户具有相同的权限,但事实并非如此。

我不能使用root crontab,因为部分python脚本使用Selenium和geckodriver,并且geckodriver无法作为root运行。

这是python脚本的重启部分:

def restart():
    command = "/usr/bin/sudo /sbin/shutdown -r now"
    import subprocess
    process = subprocess.Popen(command.split(), stdout=subprocess.PIPE)
    output = process.communicate()[0]
    print output

我正在使用Ubuntu 18.10

1 个答案:

答案 0 :(得分:1)

我设法解决了这个问题。如果有人遇到类似的问题,请尝试编辑sudoers文件,使您的user ALL=NOPASSWD: /sbin/shutdown是文件中的最后一行,因此它优先于冲突的行。