我编写了一个 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: no\n Transient: no\n Slice: system.slice\n CGroup: n/a\n CGroup realized: no\n CGroup mask: 0x0\n CGroup members mask: 0x0\n Name: wap.service\n Fragment Path: /etc/systemd/system/wap.service\n Requires: dnsmasq.service\n Requires: NetworkManager.service\n Requires: basic.target\n Requires: iptables.service\n Wants: system.slice\n WantedBy: multi-user.target\n Conflicts: shutdown.target\n Before: dnsmasq.service\n Before: multi-user.target\n Before: shutdown.target\n After: systemd-journald.socket\n After: iptables.service\n After: NetworkManager.service\n After: system.slice\n After: basic.target\n References: systemd-journald.socket\n References: iptables.service\n References: NetworkManager.service\n References: system.slice\n References: dnsmasq.service\n References: shutdown.target\n References: basic.target\n ReferencedBy: multi-user.target\n StopWhenUnneeded: no\n RefuseManualStart: no\n RefuseManualStop: no\n DefaultDependencies: yes\n OnFailureJobMode: replace\n IgnoreOnIsolate: no\n IgnoreOnSnapshot: no\n Service State: dead\n Result: success\n Reload Result: success\n PermissionsStartOnly: no\n RootDirectoryStartOnly: no\n RemainAfterExit: yes\n GuessMainPID: yes\n Type: oneshot\n Restart: no\n NotifyAccess: none\n NotifyState: unknown\n KillMode: control-group\n KillSignal: SIGTERM\n SendSIGKILL: yes\n SendSIGHUP: no\n UMask: 0022\n WorkingDirectory: /\n RootDirectory: /\n NonBlocking: no\n PrivateTmp: no\n PrivateNetwork: no\n PrivateDevices: no\nLoaded units and determined initial transaction in 75ms. ProtectHome: no\n ProtectSystem: no\n\n IgnoreSIGPIPE: yes\n LimitNOFILE: 1024 4096\n StandardInput: null\n StandardOutput: journal\n StandardError: inherit\n SyslogFacility: daemon\n SyslogLevel: info\n -> ExecStart:\n Command Line: /project/wap.sh\nRun Code Online (Sandbox Code Playgroud)\n\n重启后服务状态:
\n\n$ sudo service wap status -l\nRedirecting to /bin/systemctl status -l wap.service\n\xe2\x97\x8f wap.service - Enable the Wireless Access Point\n Loaded: loaded (/etc/systemd/system/wap.service; enabled; vendor preset: disabled)\n Active: inactive (dead)\nRun Code Online (Sandbox Code Playgroud)\n\n手动启动后服务状态:
\n\n$ sudo service wap start\nRedirecting to /bin/systemctl start wap.service\n$ sudo service wap status -l\nRedirecting to /bin/systemctl status -l wap.service\n\xe2\x97\x8f wap.service - Enable the Wireless Access Point\n Loaded: loaded (/etc/systemd/system/wap.service; enabled; vendor preset: disabled)\n Active: active (exited) since do 2019-09-26 12:10:40 BST; 6s ago\n Process: 8589 ExecStart=/project/wap.sh (code=exited, status=0/SUCCESS)\n Main PID: 8589 (code=exited, status=0/SUCCESS)\n\nsep 26 12:10:40 localhost.localdomain systemd[1]: Starting Enable the Wireless Access Point...\nsep 26 12:10:40 localhost.localdomain wap.sh[8589]: Redirecting to /bin/systemctl restart hostapd.service\nsep 26 12:10:40 localhost.localdomain systemd[1]: Started Enable the Wireless Access Point.\nRun Code Online (Sandbox Code Playgroud)\n\njournalctl输出:
$ journalctl -u wap\n-- No entries --\nRun Code Online (Sandbox Code Playgroud)\n\n我已确认wap.sh在机器启动时永远不会运行,但我无法在系统日志中找到有关此服务的任何信息,例如尝试启动该服务。
太长了;我的服务应该在启动时启动,但没有启动,我不明白为什么。
\n| 归档时间: |
|
| 查看次数: |
9617 次 |
| 最近记录: |