如果我在运行程序时从覆盆子pi断开笔记本电脑会发生什么?

时间:2018-06-15 04:40:05

标签: ssh raspberry-pi

如果我在运行程序时将笔记本电脑与raspberry pi断开连接会发生什么?

我的程序还在运行吗?会有错吗?或者什么?

3 个答案:

答案 0 :(得分:0)

来自ssh文档:

  

shell收到SIGHUP后默认退出。退出前,   交互式shell将SIGHUP重新发送到所有作业,运行或   停止。停止的工作被发送SIGCONT以确保他们收到   SIGHUP。防止shell发送SIGHUP信号到   特别的工作,它应该从作业表中删除   disown builtin(参见Job Control Builtins)或标记为不接收   SIGHUP使用disown -h。

您的程序的作用取决于它处理SIGHUP的方式。有多种方式可以影响SIGHUP的行为。它可以在程序代码中完成。例如,Deamons将忽略该信号。或者可以通过使用n = like nohup等工具

来取消程序来完成

答案 1 :(得分:0)

您始终可以使用屏幕运行终端作业。然后,如果断开连接,正在运行的作业将自动“分离”并仍在运行,或者您可以在断开终端之前手动将其分离。查看屏幕程序上的文档。

答案 2 :(得分:0)

这取决于程序的启动方式。

如果它是从def update_lecturer(self, field_to_update, value_to_set, lec_no): self.field_to_update = field_to_update self.value_to_set = value_to_set self.lec_no = lec_no self.myCursor.execute("UPDATE Lecturers SET "+self.field_to_update+" = (?) WHERE lec_no = (?)",(self.value_to_set,self.lec_no)) self.myConnection.commit() 启动的,或是作为crontab托管服务的一部分启动的,则无论您是否断开连接都无关紧要。

如果你在shell中以交互方式启动它,那么你是否会像这样使用systemctl一样无关紧要:

nohup

如果您是在nohup ./myprogram & screen会话中启动它,那也无关紧要。

如果程序有一个忽略挂断信号的SIGHUP处理程序,它将忽略你的断开连接。

最简单的测试方法是编写一个程序,每秒闪烁一次LED,看看它在断开连接后是否一直闪烁。