rc.local이 폰 시작 및 네트워크 라우팅 변경 사항을 추가하기에 가장 좋은 장소입니까?

rc.local이 폰 시작 및 네트워크 라우팅 변경 사항을 추가하기에 가장 좋은 장소입니까?

나는 팔로우했다이 가이드내 파이에 인터넷 연결이 전혀 없는 4G 모자를 얻었고 모든 것이 괜찮아 보입니다. pon백그라운드에서 시작되고 경로가 추가되면 핑을 보낼 수 있습니다 .

내가 원하는 것은 파이를 작동시키고 pon경로를 추가하는 것입니다.

현재 file 에서 이 작업을 수행하고 있지만 rc.local매우 지저분한 접근 방식이라고 확신합니다.

sleep 20
sudo pon &
sleep 20
sudo route add -net "0.0.0.0" ppp0

exit 0

ppp0궁극적으로 Python을 실행하기 전에 새로 정의된 경로에서 네트워크가 제대로 작동하는지 확인하고 싶습니다.

나는 본 적이이 비슷한 질문하지만 올바른 방법은 확실하지 않습니다. pre-up.d인터페이스를 변경하여 수행할 수 있습니까?

어떤 도움이라도 대단히 감사하겠습니다.

답변1

시작 시 systemd를 통해 실행되는 스크립트를 만들 수 있습니다.

먼저 명령에 대한 스크립트를 만듭니다. 실행 권한이 있는지 확인하세요.

다음으로 다음 부분을 포함하고 다음 /etc/systemd/system으로 끝나는 파일 이름을 사용하여 서비스 파일을 만듭니다 ..service

[Unit]
Description=Description of script/service

[Service]
ExecStart=/bin/bash [path to script]

[Install]
WantedBy=multi-user.target

그런 다음 systemctl 데몬을 다시로드하십시오.

systemctl daemon-reload

마지막으로 다음 파일 이름으로 systemctl 설치 스크립트를 사용합니다 servicename.

systemctl enable --now [servicename]

관련된:

답변2

내 질문에 대답하려면 다음을 수행하십시오.

내가 한 일은 x2 시스템 서비스를 생성하고 라우팅 테이블을 변경하는 것이었습니다.

  1. 4gpon.service백그라운드에서 pon을 시작하려면:
[Unit]
Description=4G hat networing

[Service]
Type=forking
ExecStart=/usr/bin/pon
ExecStop=/usr/bin/poff
Restart=always

[Install]
WantedBy=multi-user.target
  1. 기본적으로 ppp0을 활성화하도록 라우팅 테이블 업데이트
sudo ip route delete default
sudo ip route add default dev ppp0
sudo nano /etc/network/interfaces.d/ppp0

# add:
auto ppp0
iface ppp0 inet provider
up ip route add default dev ppp0

그럼 또 다른여기에 정의된 값으로이 파일에는 다음도 추가하세요.

sudo nano /etc/ppp/peers/provider

# add at bottom:
replacedefaultroute
  1. garage-motion.service첫 번째 서비스가 시작된 것을 확인한 후 Python을 호출하세요.
[Unit]
Description=Motion detector service
After=network.target network-online.target 4gpon.service

[Service]
Type=simple
Environment="AWS_DEFAULT_REGION=***your-region***"
Environment="AWS_ACCESS_KEY_ID=***your-key***"
Environment="AWS_SECRET_ACCESS_KEY=***your-secret-key***"
ExecStart=/bin/sh -c '/home/pi/projects/garage-motion/venv/python3 /home/pi/projects/garage-motion/venv/garage-motion.ph --serve-in-foreground'
Restart=on-abort

[Install]
WantedBy=multi-user.target

관련 정보