Python 通过ssh注销/登录后打开/关闭脚本
你们有个问题。有一台具有良好cpu和gpu的linux机器,我通过ssh在jupyter笔记本电脑上学习机器。我使用这个远程机器进行全天候挖掘,所以我需要在登录后立即关闭cpu和gpu的这两个挖掘脚本,并在注销后再次执行它们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
自动执行此操作的最佳和最简单的方法是什么?假设您在任何给定时间都有一个登录会话,在~/.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的范围,更像是一个系统管理问题。为什么要阻止它们呢?只需以最低优先级运行它们,这样,只有在机器上没有其他事情要做时,它们才会被调度。