我想在 ubuntu 启动时自动运行一个 python 脚本。通常我要做的是在 ubuntu 上打开命令行并输入
python /home/ubuntu/Desktop/UDP_Server.py
Run Code Online (Sandbox Code Playgroud)
这将运行 python 代码,所以我现在可以启动我的其他客户端代码来与之通信。
我想找到一种在启动时自动运行此代码的方法。我尝试在我的/etc/init.d文件中放置一个脚本,我也尝试将其作为启动程序,如下所示。

但是当我打开我的计算机时,此代码不会运行..因为它没有像我期望的那样与我的客户端代码进行通信(就像我从命令行运行 python 脚本时那样)
编辑:
在 rc.local 中放置诸如 touch 命令之类的命令似乎在启动时起作用。crontab 也是如此。我添加了一个命令@reboot,它可以工作。但是这个特定的代码在启动时似乎不起作用(无论是我把它放在 crontab、rc.local、init.d 中,还是作为启动应用程序)
下面是我的 UDP 服务器代码
import socket
import serial
import subprocess
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_address = (192.168.1.13, 10000)
print 'starting up on %s port %s' % server_address
sock.bind(server_address)
ser = serial.Serial('/dev/ttymxc3', 115200, timeout = 0)
print 'Serial connected'
while True:
data = sock.recv(7)
print 'received ', data
if data == "STOP":
subprocess.call(["sudo", "shutdown", "-h", …Run Code Online (Sandbox Code Playgroud)