<分区>
所以这是你们的问题。有一个 linux 机器有很好的 cpu 和 gpu,我做了一些机器学习的东西(通过 ssh 的 jupyter 笔记本)。我使用这台远程机器进行 24/7 挖矿,所以我需要在登录后立即关闭这 2 个挖矿脚本(用于 cpu 和 gpu),并在我注销后立即再次执行它们。
自动执行此操作的最佳和最简单方法是什么?
<分区>
所以这是你们的问题。有一个 linux 机器有很好的 cpu 和 gpu,我做了一些机器学习的东西(通过 ssh 的 jupyter 笔记本)。我使用这台远程机器进行 24/7 挖矿,所以我需要在登录后立即关闭这 2 个挖矿脚本(用于 cpu 和 gpu),并在我注销后立即再次执行它们。
自动执行此操作的最佳和最简单方法是什么?
最佳答案
假设你在任何给定时间都有一个登录 session ,你的 ~/.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
,然后在您注销时终止进程(干净地)。 trap
是这里的关键。除了 EXIT
之外,您还可以向其添加更多信号。
关于python - 通过 ssh 注销/登录后打开/关闭脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48710342/
相关文章:
python - Websocket与高速公路的连接和python中的twisted
python - 使用scikit-learn使用管道时出错
python - 如何提交具有 1 个以上提交按钮的表单。向网站发送 POST。 (Python)
linux - 通过命令行在 Jboss 7.0.1 中部署 war
linux - 从多个文件中删除 C 风格的 block 注释
linux - Cygwin 未检测到 Linux PC 检测到的文件
python - 如何在 QTabWidget 中隐藏选项卡并在按下按钮时显示它