0

我有一个非常简单和烦人的问题,我试图以特定用户身份启动我的数据库,但是 * 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

4

1 回答 1

2

转义的双引号会给您带来麻烦。它们不像您显然期望的那样在命令行上运行。因此,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
于 2011-11-03T16:18:59.040 回答