2014-05-20 3 views
1

사용자가 보낸 소스 코드를 처리 할 수있는 Linux 서버 (CentOS 릴리스 6.4)가 있습니다. 서버에는 제한된 방법으로 시간 제한과 메모리 제한이 있고 제한된 사용자가 실행하는 인터넷이없는 소스 코드의 컴파일 및 실행 명령을 실행하는 bash 스크립트를 시작하는 Java 응용 프로그램이 있습니다.잠시 후 sudo가 올바르게 작동하지 않습니다.

Java 프로그램은 항상 실행 중이어야 새로운 작업 요청을 등록 할 수 있습니다. Java 프로그램을 시작하면 정상적으로 작동하지만 시간이 지나면 명령이 제대로 실행되지 않습니다. 나는 다음과 같은 오류 메시지가 얻을 : 원인이되는

sudo: sorry, you must have a tty to run sudo 

라인을 즉 : $COMMAND 명령이

응용 프로그램을 다시 시작 (죽이고 시작 후 인수와 함께 실행하는 것입니다

sudo -u codiana $COMMAND & 

다시) 모든 것이 작동합니다. Linux에 시간 제한이 있습니까?

당신은 댓글을 달 수 있습니다
+0

이것은 귀하의 문제와 관련이있는 것 같습니다. http://serverfault.com/questions/111064/sudoers-how-to-disable-requiretty-per-user – Charlie

+0

Java 코드를 공유 할 수 있습니까? –

+0

여기를 보면 도움이 될 것입니다. http://www.unix.com/shell-programming-and-scripting/195129-sudo-sorry-you-must-have-tty-run-sudo.html –

답변

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. 

이것은 선택하면 텍스트 편집기로 열기/등 /의 sudoers를 원하는 및 주석되지 않도록 경우 이 줄.

+0

답변과 선택한 명령에 대해 나중에 설명하고 응답 값을 높이기 위해 설명하십시오. – Luceos

+1

@Luceos, 더 나은가요? – Tiago

+0

지금까지 작동하는 것 같습니다. 감사합니다 – x3mspeedy

관련 문제