![如何重新注册我的登录 shell?](https://linux22.com/image/66874/%E5%A6%82%E4%BD%95%E9%87%8D%E6%96%B0%E6%B3%A8%E5%86%8C%E6%88%91%E7%9A%84%E7%99%BB%E5%BD%95%20shell%EF%BC%9F.png)
我位于一个多用户登录节点上,这是一个运行 Linux 的大型国家生物信息学计算场的前端节点。许多用户行为不当,在登录节点上运行计算密集型作业。我不。我想做个好人。事实上,我什至希望我的登录 shell 在良好的级别 4 上运行,而不是默认的 0(零)。
重新登录 shell 的最方便且不做作的方法是什么?
我当前的设置:
tmux
我在一个或多个会话中运行 ast-ksh (KornShell 93) 。系统上的默认 shell 是bash
,但我exec -l ksh93
从~/.bash_profile
中重新连接到任何正在运行的tmux
会话~/.profile
,或者创建一个新会话(如果不存在)。
摘自:即使用棍子~/.bash_profile
我也不想碰,所以我愿意用它做的就是拥有一个我最喜欢的外壳。改变这个系统上的默认 shell 并不容易......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 $$
当前 shell ( $$
) 的 Nice 值设置为 4,从而导致该 shell 启动的后续命令继承相同的 Niceness 值。
我还没有在 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