我有一个服务器,它.bashrc
在启动时执行此行:/bin/watch ~/checker.bash
。正如预期的那样,它会在服务器启动时监视该命令。
我还有一个登录该计算机的客户端,但我不希望客户端的会话从.bashrc
.
我已经研究过AcceptEnv
传递环境变量,尽管它需要配置服务器,这是我想避免的。
我也不想为不同的.bashrc
用户拥有两个不同的用户帐户。
还有其他角度可以解决这个问题吗?
答案1
两种方式:
请勿在此会话中使用 bash,尝试使用 dash(或 /bin/sh):
ssh 127.0.0.1 /bin/dash
使用带有命令选项的 bash 来禁用处理启动文件:
ssh 127.0.0.1 "bash --noprofile --norc"
答案2
.bashrc
仅当未通过 调用时,您才可以激活您的部分内容ssh
。
例如:
# within an SSH-session, ${SSH_TTY} will be set
if [ "x${SSH_TTY}" = "x" ]; then
/bin/watch ~/checker.bash
fi
答案3
您可以将 /bin/watch .... 行替换为
if ps ax | grep /bin/watch | grep -v grep > /dev/null 2>&1
then
echo "Nothing to do"
else
/bin/watch ~/checker.bash
fi
或类似的东西。