如何在终止ssh后在Raspberry Pi上后台运行Python程序

2024-06-09 19:45:14 发布

您现在位置:Python中文网/ 问答频道 /正文


关闭ssh连接后,我需要在后台的Raspberry Pi上运行Python程序,因为我需要在SQL DB上保存Phidget信息
我试图用nohup来实现这一点,但似乎python程序甚至都没有执行。

因为当我查看MySql数据库时,在执行下面的操作之后,没有插入任何内容。

我输入:

    pi@raspi ~/MyProjekt $ sudo nohup python sensorReader.py &
    [1] 8580

当我试图寻找这个过程是否存在时:

ps -A| grep 8580

它不返回任何内容。
我有什么不对劲吗?
关闭SSH Conneciton后如何运行python程序


Tags: 程序信息数据库内容dbsqlmysqlpi
2条回答

我建议在cron重新启动作业中运行python程序。

要编辑根cronjobs,请使用

sudo crontab -e

并添加行

@reboot sudo python full_path/MyProjekt/sensorReader.py

然后使用以下命令重新启动pi:

sudo reboot

然后确认您的进程正在运行:

ps -aux | grep python

我不认为这是一个ssh连接问题,从你所说的程序似乎执行和退出。你的.py在无限循环中执行吗?否则你就别指望它还活着。

然后,关于在父进程终止后保持进程的活动性(在您的例子中是shell),nohup是答案,这意味着忽略HUP信号(那些由终止的父进程发送的信号)。

“&;”只表示“在后台执行”。

如果您的程序打算周期性地执行某些操作,cron解决方案是很好的,但是如果它应该在等待某个事件(比如监听套接字)时保持活动状态,我更希望创建一个in it scritp,以便程序在启动时作为demon运行,并且只在所需的运行级别运行。

相关问题 更多 >