시스템 재부팅 후에도 지속되는 일부 정적 ARP 항목을 추가하고 싶습니다. 이를 위해 나는 단순히 파일에서 ARP 테이블을 채우는 systemd 서비스를 사용해 보았습니다 /etc/ethers
.
[Unit]
Description=startup-test
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=root
Group=root
ExecStart=arp -f
Restart=on-failure
[Install]
WantedBy=multi-user.target
이 방법은 작동하지 않으며 시작 시 ARP 항목이 추가되지 않지만 systemd 서비스가 명령을 실행하는 것으로 나타납니다 arp -f
("네트워크 연결 불가"로 인해 실패했음에도 불구하고).
출력 systemctl status
:
● startup.service - startup-test
Loaded: loaded (/etc/systemd/system/startup.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Sun 2023-01-29 15:10:53 EET; 1min 7s ago
Process: 562 ExecStart=arp -f (code=exited, status=0/SUCCESS)
Main PID: 562 (code=exited, status=0/SUCCESS)
CPU: 14ms
Jan 29 15:10:52 raspberrypi systemd[1]: Started startup-test.
Jan 29 15:10:53 raspberrypi arp[562]: SIOCSARP: Network is unreachable
Jan 29 15:10:53 raspberrypi arp[562]: arp: cannot set entry on line 1 of etherfile /etc/ethers !
Jan 29 15:10:53 raspberrypi arp[562]: SIOCSARP: Network is unreachable
Jan 29 15:10:53 raspberrypi arp[562]: arp: cannot set entry on line 2 of etherfile /etc/ethers !
Jan 29 15:10:53 raspberrypi systemd[1]: startup.service: Succeeded.
그러나 서비스를 수동으로 시작하면 systemctl start
오류가 발생하지 않습니다(그리고 ARP 테이블은 예상대로 채워집니다).
systemctl status
수동 시작 후 출력:
● startup.service - startup-test
Loaded: loaded (/etc/systemd/system/startup.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Sun 2023-01-29 15:11:55 EET; 5s ago
Process: 1664 ExecStart=arp -f (code=exited, status=0/SUCCESS)
Main PID: 1664 (code=exited, status=0/SUCCESS)
CPU: 13ms
Jan 29 15:11:55 raspberrypi systemd[1]: Started startup-test.
Jan 29 15:11:55 raspberrypi systemd[1]: startup.service: Succeeded.
여기에 문제가 있나요?
추신. 나는 Hooks 를 사용하여 내가 원하는 것을 성공적으로 수행했습니다 dhcpcd
. 그래서 대안을 찾는 것이 아니라, 시스템적인 접근 방식에 어떤 문제가 있는지 궁금할 뿐입니다.
(라즈베리 파이 불스아이)