web-dev-qa-db-ja.com

.bashrcスクリプトを無視するSSHパラメータ

サーバーが起動すると、.bashrcの行が次のコマンド/bin/watch ~/checker.bashを実行するサーバーがあり、サーバーの起動時にそのコマンドを監視します。

そのマシンにログインするクライアントもいますが、クライアントのセッションで.bashrcから同じコマンドを実行したくありません。

Env変数を渡すためにAcceptEnvを調べましたが、サーバーの構成が必要になるため、避けたいです。

また、.bashrcごとに2つの異なるユーザーアカウントを設定したくありません。

これからアプローチする別の角度はありますか?

8
ljs.dev

.bashrcsshを介して呼び出されない場合のみ。

例えば何かのようなもの:

# within an SSH-session, ${SSH_TTY} will be set
if [ "x${SSH_TTY}" = "x" ]; then
  /bin/watch ~/checker.bash
fi
5
umläute

二つの方法:

このセッションではbashを使用しないでください。ダッシュ(または/ bin/sh)を試してください。

ssh 127.0.0.1 /bin/dash

コマンドオプションを指定してbashを使用し、スタートアップファイルの処理を無効にします。

ssh 127.0.0.1 "bash --noprofile --norc"
13
Dan Garthwaite

/ 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

またはそのようなもの。

2
MariusMatutiae