我跟着本文创建 vnc 服务。该服务正在分叉并使用 PID 文件。我的服务描述版本 —[电子邮件保护]— 看起来像这样:
[Unit]
Description=Start TightVNC at startup
After=syslog.target network.target
[Service]
Type=forking
User=interactive
Group=interactive
WorkingDirectory=/home/interactive
PIDFile=/home/interactive/.vnc/%H:%i.pid
ExecStartPre=/usr/bin/touch /home/interactive/.vnc/%H:%i.pid
ExecStartPre=/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
但是,systemd 文档在 PIDFile 下包含以下内容:
请注意,在现代项目中应避免使用 PID 文件。尽可能使用 Type=notify、Type=notify-reload 或 Type=simple,这样就不需要使用 PID 文件来确定服务的主进程,并避免不必要的分叉。
是否有可能避免 vnc 服务的分叉和 PID 文件?