私は、Linuxを実行している大規模な国家バイオインフォマティクスコンピューティングファームのフロントエンドノードであるマルチユーザーログインノードを使用しています。多くのユーザーがログインノードで誤った行動を起こし、計算集約的なタスクを実行しました。私はそうではありません。私は良い人になりたいです。実際、私はログインシェルをデフォルトのゼロ(ゼロ)ではなく良いレベル4で実行したいと思います。
シェルに再度ログインする最も便利で素朴な方法は何ですか?
私の現在の設定:
tmux
1つ以上のセッションでast-ksh(KornShell 93)を実行しています。システムのデフォルトのシェルですが、bash
実行中のセッションexec -l ksh93
に~/.bash_profile
再接続するか、セッションがない場合は新しいセッションを作成します。tmux
~/.profile
出典:スティックを持っていても~/.bash_profile
触れたくないので、私が一番好きなシェルだけを持ちたいです。このシステムでデフォルトのシェルを変更するのは簡単ではありません...bash
exec
if [ -f $HOME/sw/bin/ksh93 ]; then
exec -l $HOME/sw/bin/ksh93
fi
抜粋~/.profile
:すでにセッションに存在するかどうかを検出し、tmux
そうでない場合はSSHを介してログインすると、セッションが接続または生成されます。
if [[ -z $TMUX ]]; then
ssh-add
if [[ -n $SSH_TTY ]]; then
if tmux has-session 2>/dev/null; then
exec tmux attach-session
else
exec tmux
fi
fi
fi
次のスニペット~/.tmux.conf
:
set -g default-shell "$HOME/sw/bin/ksh93"
どこでksh93
、どうやって諦めるべきですか?
答え1
~/.bash_profile
次のように修正すれば十分です。
if [ -f /bin/ksh93 ]
then
renice -n 4 $$
exec -l /bin/ksh93
fi
renice -n 4 $$
現在のシェル()のNiceness値を4に設定すると、$$
そのシェルで実行される後続のコマンドは同じNiceness値を継承します。
tmuxセッションでテストしていませんが、tmuxセッションなしでログインすると期待どおりに機能します。
$ su - testuser ## whose ~/.bash_profile contains the lines above
$ ps -eo "%p %y %x %c %n" | grep ksh
16894 pts/9 00:00:00 ksh93 4 #<-- the nice value