su -session-command错误

时间:2011-11-03 15:50:02

标签: linux fedora su objectdb

我有一个非常简单和恼人的问题,我正在尝试以特定用户身份启动我的数据库,但* su --session-comman * d对我失败了!

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

#!/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

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

然后出现了这个错误:

[root@Taturana 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

有什么想法吗?

PS:我正在使用Fedora 15

1 个答案:

答案 0 :(得分:1)

转义的双引号会给您带来麻烦。它们在命令行上不起作用,正如您显然期望的那样。因此,shell会查看空格并将start"解释为su的第二个参数,并指定用户名。

在控制台上回显命令行真的很重要吗?你可能会更喜欢这样的事情:

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

或者改为使用sudo

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