我有Linux服务器(CentOS版本6.4),它能够处理用户发送的源代码。在服务器上是一个Java应用程序,它启动一个bash脚本,它将以有限的方式运行这些源代码的编译和执行命令(时间和内存有限,没有Internet,由有限的用户执行)。
Java程序必须始终运行,因此它可以注册新的作业请求。 启动时,Java程序运行正常,但一段时间后(几天说话),命令无法正常执行。我收到以下错误消息:
sudo: sorry, you must have a tty to run sudo
导致该行的是:
sudo -u codiana $COMMAND &
其中$COMMAND
是与其参数一起执行的命令
应用程序重启后(kill并重新启动)一切正常。 Linux上有一些时间限制会导致这种情况吗?
答案 0 :(得分:1)
您可以评论/ etc / sudoers:
#Defaults requiretty
修改强>
man sudoers | grep requiretty -A 5
requiretty If set, sudo will only run when the user is logged in
to a real tty. When this flag is set, sudo can only be
run from a login session and not via other means such
as cron(8) or cgi-bin scripts. This flag is off by
default.
所以如果不希望打开/ etc / sudoers,请选择文本编辑器并注释掉这一行。