저는 Linux를 실행하는 대규모 국가 생물정보학 컴퓨팅 팜의 프런트 엔드 노드인 다중 사용자 로그인 노드를 사용하고 있습니다. 많은 사용자가 로그인 노드에서 잘못된 행동을 하고 계산 집약적인 작업을 실행했습니다. 나는 아니에요. 나는 좋은 사람이 되고 싶다. 사실 저는 로그인 쉘이 기본 0(영) 대신 좋은 레벨 4에서 실행되기를 원합니다.
쉘에 다시 로그인하는 가장 편리하고 소박한 방법은 무엇입니까?
내 현재 설정:
tmux
하나 이상의 세션에서 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