Aici este gata să porniți comenzi simple de implementare shell pentru cazul dvs., puteți schimba directoare, numele, descrierea serviciului sau scriptul și așa mai departe, descrierea este mai jos:
Creați directorul și scriptul în sine
mkdir /usr/src/python-socket -p
cat > /usr/src/python-socket/python-socket.py << „EOL”
priză de import
gazdă = '127.0.0.1'
port = 9999
BUFFER_SIZE = 1024
cu socket.socket(socket.AF_INET, socket.SOCK_STREAM) ca socket_tcp:
socket_tcp.bind((gazdă, port))
socket_tcp.listen(5) # Sperăm la conexión del cliente
conn, addr = socket_tcp.accept() # Stabilim conexiunea cu clientul
cu conn:
print('[*] Conexión stabilita')
în timp ce este adevărat:
# Recibim bytes, convertimos en str
date = conn.recv(BUFFER_SIZE)
# Verificăm că am primit datele
daca nu date:
pauză
altceva:
print('[*] Date primite: {}'.format(data.decode('utf-8')))
conn.send(data) # Facem echo convirtiind noua octeți
EOL
Configurați variabile pentru crearea serviciului systemd
SERVICE_NAME=python-socket
SERVICE_DESCRIPTION="Testează serviciul Python"
SERVICE_COMMAND="/usr/bin/python3 /usr/src/python-socket/python-socket.py"
SERVICE_WORK_DIR=/usr/src/python-socket/
SERVICE_USER=rădăcină
Implementați configurația serviciului systemd
cat > /etc/systemd/system/${SERVICE_NAME}.service << EOL
[Unitate]
Descriere=${SERVICE_DESCRIPTION}
După=multi-user.target
[Serviciu]
Environment="FROM=SYSTEMD"
WorkingDirectory=${SERVICE_WORK_DIR}
Tip=simplu
Utilizator=${SERVICE_USER}
ExecStart=${SERVICE_COMMAND}
RemainAfterExit=nu
Restart=intotdeauna
RestartSec=2
StartLimitBurst=999999
StartLimitInterval=0
KillMode=proces
[Instalare]
WantedBy=multi-user.target
EOL
Aplicați un serviciu nou, porniți-l și verificați
systemctl daemon-reload
systemctl activați ${SERVICE_NAME}
systemctl opri ${SERVICE_NAME}
systemctl porniți ${SERVICE_NAME}
stare systemctl ${SERVICE_NAME}
Ca rezultat, configurația serviciului systemd va arăta ca
[Unitate]
Descriere=Testează serviciul Python
După=multi-user.target
[Serviciu]
Environment="FROM=SYSTEMD"
WorkingDirectory=/usr/src/python-socket/
Tip=simplu
Utilizator=rădăcină
ExecStart=/usr/bin/python3 /usr/src/python-socket/python-socket.py
RemainAfterExit=nu
Restart=intotdeauna
RestartSec=2
StartLimitBurst=999999
StartLimitInterval=0
KillMode=proces
[Instalare]
WantedBy=multi-user.target
Unde:
Environment="FROM=SYSTEMD"
- o variabilă env dacă doriți să treceți la scriptul dvs. python
Tip=simplu
- serviciu systemd simplu, va funcționa în timp ce scriptul este activ
RemainAfterExit=nu
Restart=intotdeauna
RestartSec=2
StartLimitBurst=999999
StartLimitInterval=0
Acești parametri nu vor permite ca scriptul dvs. să fie oprit în nicio condiție în care va începe să eșueze continuu
KillMode=proces
- Așa se va opri scriptul dvs., dacă nu aveți evenimente SIG speciale în scriptul dvs. python, este universal