【发布时间】:2010-04-08 09:37:46
【问题描述】:
我的问题是这样的(操作系统是 Sun Solaris):
在启动时,我想使用特定脚本启动一个进程。我通过将此脚本放在
/etc/init.d中来做到这一点(并遵循其他 K 和 S 规则)。脚本将调用的程序位于
$HOME/xxx/yyy位置。我使用
'su - {myuser} -c "{full path of the program}"'以{myuser} 身份执行脚本。我不想在脚本中硬编码 $HOME 的值,但我只想使用
$HOME环境变量。如何在 shell 脚本中获取这个$HOME环境变量?还有哪些其他变量可供我使用?
【问题讨论】:
-
一个典型的服务器故障问题。应该搬家,可能有更多合格的答案。
-
您意识到这是一个安全风险,不是吗?无论如何,
su -应该给你$HOME。如果您尝试su - user -c "echo \$HOME",它会给您正确的结果吗?您的 init.d 脚本不起作用吗?它在做什么/不做什么?您是否尝试过将输出重定向到文件进行调试?