专栏总目录
一、准备测试程序
(一)用python写一个TCP服务器端程序
import socket
import threading
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind(('127.0.0.1', 9999))
s.listen(1000)
print('start listening')
def handler(conn):
data = conn.recv(1024)
print(data.decode())
while True:
conn, addr = s.accept()
if conn:
p = threading.thread(target= handler, args=(conn,))
p.start()
(二)验证程序
执行后,打开新的shell,输入下列命令,检查9999端口是否开启了侦听
netstat -pantu
当看到了127.0.0.1:9999这一行内容,说明以上程序成功执行
二、设置开机自动运行
(一)使用 systemd
服务(已验证)
systemd
是 Ubuntu 22.04 的默认启动系统和服务管理器。你可以创建一个 my_service.service
文件来定义你的服务,并将其放置在 /etc/systemd/system/
目录下。
sudo vi /etc/systemd/system/my_service.service
将/path/to/your/script.py替换为你要执行程序的路径
# /etc/systemd/system/my_service.service
[Unit]
Description=My Custom Service
[Service]
Type=idle
ExecStart=/usr/bin/python3 /path/to/your/script.py
[Install]
WantedBy=multi-user.target
接下来,启用并启动服务:
sudo systemctl enable my_service.service
sudo systemctl start my_service.service
这将在系统启动时自动启动你的服务。
当不想开启自动执行的时候,可以关闭该自动运行服务,命令如下:
sudo systemctl disable my_service.service
(二)使用 rc.local(未验证)
编辑 /etc/rc.local
文件。这个文件在系统启动时会自动执行。
首先,编辑 /etc/rc.local
文件
sudo vi /etc/rc.local
在rc.local文件中添加以下内容:
#!/bin/bash
# /etc/rc.local
#这里可以添加你在shell中执行的代码
python3 /home/t/test01.py
exit 0
赋予rc.local文件可执行权限
sudo chmod +x /etc/rc.local
三、验证
验证方式,与上面程序运行的验证方式一致,此处省略