如何重新注册我的登录 shell?

如何重新注册我的登录 shell?

我位于一个多用户登录节点上,这是一个运行 Linux 的大型国家生物信息学计算场的前端节点。许多用户行为不当,在登录节点上运行计算密集型作业。我不。我想做个好人。事实上,我什至希望我的登录 shell 在良好的级别 4 上运行,而不是默认的 0(零)。

重新登录 shell 的最方便且不做作的方法是什么?

我当前的设置:

tmux我在一个或多个会话中运行 ast-ksh (KornShell 93) 。系统上的默认 shell 是bash,但我exec -l ksh93~/.bash_profile中重新连接到任何正在运行的tmux会话~/.profile,或者创建一个新会话(如果不存在)。

摘自:即使用棍子~/.bash_profile我也不想碰,所以我愿意用它做的就是拥有一个我最喜欢的外壳。改变这个系统上的默认 shell 并不容易......bashexec

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

相关内容