2011-11-03 3 views
0

매우 간단하고 성가신 문제가있어서 특정 사용자로 데이터베이스를 시작하려고하지만 * su --session-comman * d! 실패합니다!su -session-command error

[[email protected] bin]# ./objectdb-start.sh 
su --session-command="/opt/java-tools/objectdb-2.3.0_04/bin/objectdb.sh start" javauser 
su: user start" does not exist 

어떤 생각 :

############################## 

#!/bin/bash 

objectdb-start.sh 

OBJECTDB_HOME=/opt/java-tools/objectdb-2.3.0_04 
JAVA_USER=javauser 

CMD="su --session-command=\"${OBJECTDB_HOME}/bin/objectdb.sh start\" ${JAVA_USER}" 

echo $CMD 
$CMD 

############################## 

그런 다음이 오류가있어?

PS : 나는

+1

'#은/빈은/bash'은 아무런 효과가 없다!

su --session-command="${OBJECTDB_HOME}/bin/objectdb.sh start" $JAVA_USER 

또는 사용 sudo 대신 : 당신은 아마 이런 식으로 뭔가 더 나을 것 스크립트 파일. – eaj

답변

1

페도라 15를 사용하고있어 큰 따옴표는 당신에게 문제를 일으키는 탈출했다. 명령 줄에서 분명히 예상대로 작동하지 않습니다. 따라서 쉘은 공백을보고 사용자 이름을 지정하여 su의 두 번째 인수로 start"을 해석합니다.

콘솔의 명령 줄이 실제로 중요한 것입니까? 그것은 __very 처음 thing__의 경우를 제외하고

sudo -u $JAVA_USER $OBJECTDB_HOME/bin/objectdb.sh start 
+0

에코는 어떤 명령인지와 sudo는 tty가 필요하기 때문에 사용할 수 없습니다.이 스크립트를 systemd에 추가하려고합니다. – LottaLava

+0

맞습니다. 사용하기 위해 따옴표를 바꿨습니다. . – LottaLava