我编写了一个 systemd 服务,以便在机器启动时启动无线接入点。我的问题是,机器启动时它实际上并未启动,我似乎无法找出原因。手动启动服务效果很好。
\n\n我的wap.service系统单元文件:
[Unit]\nDescription=Enable the Wireless Access Point\nRequires=dnsmasq.service iptables.service NetworkManager.service\nBefore=dnsmasq.service\nAfter=iptables.service NetworkManager.service\n\n[Service]\nType=oneshot\nRemainAfterExit=true\nExecStart=/project/wap.sh\nTimeoutStartSec=0\n\n[Install]\nWantedBy=default.target\n\nRun Code Online (Sandbox Code Playgroud)\n\n/project/wap.sh(大括号是 Ansible/Jinja2 变量替换):
[Unit]\nDescription=Enable the Wireless Access Point\nRequires=dnsmasq.service iptables.service NetworkManager.service\nBefore=dnsmasq.service\nAfter=iptables.service NetworkManager.service\n\n[Service]\nType=oneshot\nRemainAfterExit=true\nExecStart=/project/wap.sh\nTimeoutStartSec=0\n\n[Install]\nWantedBy=default.target\n\nRun Code Online (Sandbox Code Playgroud)\n\n相关/usr/lib/systemd/systemd --test --system --unit=default.target输出:
-> Unit wap.service:\n Description: Enable the Wireless Access Point\n Instance: n/a\n Unit Load State: loaded\n Unit Active State: inactive\n Inactive Exit Timestamp: n/a\n Active Enter Timestamp: n/a\n Active Exit Timestamp: n/a\n Inactive Enter Timestamp: n/a\n GC Check Good: no\n Need Daemon Reload: …Run Code Online (Sandbox Code Playgroud)