Python 通过ssh注销/登录后打开/关闭脚本

Python 通过ssh注销/登录后打开/关闭脚本,python,linux,bash,ssh,Python,Linux,Bash,Ssh,你们有个问题。有一台具有良好cpu和gpu的linux机器,我通过ssh在jupyter笔记本电脑上学习机器。我使用这个远程机器进行全天候挖掘,所以我需要在登录后立即关闭cpu和gpu的这两个挖掘脚本,并在注销后再次执行它们 自动执行此操作的最佳和最简单的方法是什么?假设您在任何给定时间都有一个登录会话,在~/.bashrc中可以执行类似的操作 function start_script() { if [ ! -f "${HOME}/pidfile" ]; then /p

你们有个问题。有一台具有良好cpu和gpu的linux机器,我通过ssh在jupyter笔记本电脑上学习机器。我使用这个远程机器进行全天候挖掘,所以我需要在登录后立即关闭cpu和gpu的这两个挖掘脚本,并在注销后再次执行它们


自动执行此操作的最佳和最简单的方法是什么?

假设您在任何给定时间都有一个登录会话,在~/.bashrc中可以执行类似的操作

function start_script()
{
    if [ ! -f "${HOME}/pidfile" ]; then
        /path/to/script1 &> /path/to/log2 & # Background running job
        _spid=$!
        echo "$_spid" > "${HOME}/pidfile"  # Write each pid to a file
        /path/to/script2 &> /path/to/log1 &
        _spid=$!
        echo "$_spid" >> "${HOME}/pidfile"
    fi
}
start_script

function stop_script() 
{
    while read -r _pid
    do
        kill "$_pid"  # kill pids while exiting
    done <"${HOME}/pidfile"
    rm -f "${HOME}/pidfile" # Remove the pidfile 
    echo Goodbye;
}
trap stop_script EXIT  # run stop_script when exiting from login session

上面的脚本将在您登录时运行script1和script2,然后在您完全注销时终止进程。陷阱是这里的关键。除了退出之外,您还可以向它添加更多信号。

除了在登录和注销脚本中向它们发送信号之外?查看并查找登录/注销挂钩您是否始终拥有此远程服务器的单个登录实例?如果您使用的是基于systemd的系统,则肯定可以设置一个服务,该服务依赖于具有会话的用户帐户。但这明显超出了StackOverflow的范围,更像是一个系统管理问题。为什么要阻止它们呢?只需以最低优先级运行它们,这样,只有在机器上没有其他事情要做时,它们才会被调度。