大家好,我正在尝试创建一个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。
假设sensusensu用户身份运行,请将以下内容添加到/etc/sudoers

Defaults:sensu !requiretty

10-08 15:01