相关疑难解决方法(0)

在 SSH 会话断开连接后保持进程运行

有时我想在回家之前启动一个长时间运行的进程,所以我创建了一个到服务器的 SSH 会话来启动这个进程,但是我想关闭我的笔记本电脑回家,晚饭后,我想检查我在下班前开始的过程。我怎样才能用 SSH 做到这一点?我的理解是,如果您中断 SSH 连接,您也会中断服务器上的登录会话,从而终止长时间运行的进程。

command-line ssh background-process

262
推荐指数
10
解决办法
24万
查看次数

为什么我的 Python 后台进程在 SSH 会话终止时结束?

我有一个 bash 脚本,它启动一个 python3 脚本(让我们称之为startup.sh),关键行:

nohup python3 -u <script> &
Run Code Online (Sandbox Code Playgroud)

当我ssh直接进入并调用此脚本时,python脚本在我退出后继续在后台运行。但是,当我运行此命令时:

ssh -i <keyfile> -o StrictHostKeyChecking=no <user>@<hostname> "./startup.sh"
Run Code Online (Sandbox Code Playgroud)

该过程ssh在完成运行后立即结束并关闭会话。

两者有什么区别?

编辑:python 脚本通过 Bottle 运行 Web 服务。

EDIT2:我也尝试创建一个调用startup.sh和运行的初始化脚本ssh -i <keyfile> -o StrictHostKeyChecking=no <user>@<hostname> "sudo service start <servicename>",但得到了相同的行为。

EDIT3:也许是脚本中的其他内容。这是脚本的大部分内容:

chmod 700 ${key_loc}

echo "INFO: Syncing files."
rsync -azP -e "ssh -i ${key_loc} -o StrictHostKeyChecking=no" ${source_client_loc} ${remote_user}@${remote_hostname}:${destination_client_loc}

echo "INFO: Running startup script."
ssh -i ${key_loc} -o StrictHostKeyChecking=no ${remote_user}@${remote_hostname} "cd ${destination_client_loc}; …
Run Code Online (Sandbox Code Playgroud)

bash ssh python background-process

22
推荐指数
1
解决办法
3万
查看次数

标签 统计

background-process ×2

ssh ×2

bash ×1

command-line ×1

python ×1