大家好,我正在尝试创建一个sensu check-in-python,它需要一个shell,但目前给了我一个tty错误。
cmd = '/usr/bin/pstorage stat |grep %s |grep failed' % hostname
output = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True).communicate()[0]
sensu默认没有tty,因此当它尝试执行脚本时
sudo /etc/sensu/plugins/diskauto.py --storage_name pool-01
输出是
sudo: no tty present and no askpass program specified
我已经有了以下sudo规则
Cmnd_Alias DRIVE_AUTOMATION=/apptio/scripts/diskauto.py
最佳答案
您可以将sudo
配置为在某些情况下不需要tty。
假设sensu
以sensu
用户身份运行,请将以下内容添加到/etc/sudoers
:
Defaults:sensu !requiretty