Ở đây sẵn sàng thực hiện các lệnh triển khai shell đơn giản cho trường hợp của bạn, bạn có thể thay đổi thư mục, tên, mô tả dịch vụ hoặc tập lệnh, v.v., mô tả bên dưới:
Tự tạo thư mục và tập lệnh
mkdir /usr/src/python-socket -p
con mèo > /usr/src/python-socket/python-socket.py << 'EOL'
ổ cắm nhập khẩu
máy chủ = '127.0.0.1'
cổng = 9999
BUFFER_SIZE = 1024
với socket.socket(socket.AF_INET, socket.SOCK_STREAM) dưới dạng socket_tcp:
socket_tcp.bind((máy chủ, cổng))
socket_tcp.listen(5) # Esperamos la conexión del cliente
conn, addr = socket_tcp.accept() # Establecemos la conexión con el cliente
với kết nối:
print('[*] Conexión establecida')
trong khi Đúng:
# Recibimos bytes, convertimos en str
dữ liệu = conn.recv(BUFFER_SIZE)
# Verificamos que hemos recibido datos
nếu không phải là dữ liệu:
nghỉ
khác:
print('[*] Datos recibidos: {}'.format(data.decode('utf-8')))
conn.send(data) # Hacemos echo convirtiendo de nuevo a bytes
EOL
Thiết lập các biến để tạo dịch vụ systemd
SERVICE_NAME=python-socket
SERVICE_DESCRIPTION="Thử nghiệm dịch vụ python"
SERVICE_COMMAND="/usr/bin/python3 /usr/src/python-socket/python-socket.py"
SERVICE_WORK_DIR=/usr/src/python-socket/
SERVICE_USER=gốc
Triển khai cấu hình dịch vụ systemd
mèo > /etc/systemd/system/${SERVICE_NAME}.service << EOL
[Đơn vị]
Mô tả=${SERVICE_DESCRIPTION}
Sau=multi-user.target
[Dịch vụ]
Môi trường = "TỪ = HỆ THỐNG"
WorkingDirectory=${SERVICE_WORK_DIR}
Loại = đơn giản
Người dùng=${SERVICE_USER}
ExecStart=${SERVICE_COMMAND}
RemainafterExit=no
Khởi động lại = luôn luôn
Khởi động lạiSec=2
StartLimitBurst=999999
StartLimitInterval=0
KillMode=tiến trình
[Cài đặt]
WantedBy=multi-user.target
EOL
Áp dụng dịch vụ mới, bắt đầu và kiểm tra
systemctl daemon-tải lại
bật systemctl ${SERVICE_NAME}
systemctl dừng ${SERVICE_NAME}
bắt đầu systemctl ${SERVICE_NAME}
trạng thái systemctl ${SERVICE_NAME}
Kết quả là cấu hình dịch vụ systemd của bạn sẽ giống như
[Đơn vị]
Mô tả=Thử nghiệm dịch vụ python
Sau=multi-user.target
[Dịch vụ]
Môi trường = "TỪ = HỆ THỐNG"
WorkingDirectory=/usr/src/python-socket/
Loại = đơn giản
Người dùng = root
ExecStart=/usr/bin/python3 /usr/src/python-socket/python-socket.py
RemainafterExit=no
Khởi động lại = luôn luôn
Khởi động lạiSec=2
StartLimitBurst=999999
StartLimitInterval=0
KillMode=tiến trình
[Cài đặt]
WantedBy=multi-user.target
Ở đâu:
Môi trường = "TỪ = HỆ THỐNG"
- một số biến env nếu bạn muốn chuyển đến tập lệnh python của mình
Loại = đơn giản
- dịch vụ systemd đơn giản, nó sẽ hoạt động trong khi tập lệnh đang hoạt động
RemainafterExit=no
Khởi động lại = luôn luôn
Khởi động lạiSec=2
StartLimitBurst=999999
StartLimitInterval=0
Các tham số này sẽ không cho phép tập lệnh của bạn ngừng hoạt động trong bất kỳ điều kiện nào, nó sẽ bắt đầu thất bại liên tục
KillMode=tiến trình
- Đây là cách tập lệnh của bạn sẽ dừng, nếu bạn không có các sự kiện SIG đặc biệt trong tập lệnh python của mình thì đó là phổ biến