Evn = Ubuntu 18.04 64bit(Desktop)
文件:“ / home / kwan / python / client.py”
#!/usr/bin/python3
# encoding: utf-8
import socket
from time import sleep
class sock:
def __init__(self, target):
self.target = (target, 6666)
self.flag = "alive"
def keep_conn(self):
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
try:
s.connect(self.target)
s.send(self.flag.encode("utf8"))
print("conn success!")
except Exception as err:
print(err)
if __name__ == '__main__':
client_sock = sock("192.168.1.144")
try:
print("Press Ctrl + C to stop")
while True:
client_sock.keep_conn()
# sleep(1)
except KeyboardInterrupt:
print("stop")
exit(1)
except Exception as err:
print(err)
文件:“ / etc / systemd / system / autorun.service”
编辑:
[Unit]
Description=AutoRun
After=multi-user.target
[Service]
Type=simple
WorkingDirectory=/home/kwan/python
ExecStart=/usr/bin/python3 /home/kwan/python/client.py
StandardOutput=syslog
StandardError=syslog
[Install]
WantedBy=multi-user.target
终端命令:
sudo systemctl enable autorun.service
sudo systemctl daemon-reload
sudo service autorun start
它可以工作!
但是当我创建一个tkinter gui脚本时:
文件:/home/kwan/python/gui.py
#!/usr/bin/python3
# encoding: utf-8
import tkinter as tk
if __name__ == '__main__':
window = tk.Tk()
window.geometry('300x200')
window.mainloop()
像以前一样编辑服务文件,但是什么也没发生。
它可以在终端命令上运行并显示一个窗口:
python3 /home/kwan/python/gui.py
文件:“ / etc / systemd / system / mygui.service”
编辑:
[Unit]
Description=MyGUI
After=multi-user.target
[Service]
Type=simple
WorkingDirectory=/home/kwan/python
ExecStart=/usr/bin/python3 /home/kwan/python/gui.py
StandardOutput=syslog
StandardError=syslog
[Install]
WantedBy=multi-user.target
终端命令:
sudo systemctl enable mygui.service
sudo systemctl daemon-reload
sudo service mygui start
有人知道为什么服务在运行,但没有gui显示吗?