Arch Linux가 시작되고 1분 후에 스크립트 실행

Arch Linux가 시작되고 1분 후에 스크립트 실행

나는 netctl을 사용하여 eth0과 wlan0 사이에 브리지를 설정했습니다. 부팅 시 eth0 및 wlan0을 구성하도록 지시한 다음 부팅 후 브리지를 수동으로 시작하면 제대로 작동합니다. 브리지가 자동으로 시작되도록 지시하면 어떤 이유로 WLAN 어댑터가 액세스 포인트에 연결할 수 없습니다. 따라서 전체 시스템 부팅이 완료된 후 1분 정도 실행하려면 "netctl startbridge"가 필요합니다. 내가 무엇을 해야 할지 아시나요?

추신. 이것은 헤드리스 시스템이며 xorg가 없기 때문에 xorg가 시작될 때 실행하면 작동하지 않습니다.

답변1

systemd 타이머를 사용하여 시작 후 1분 동안 스크립트를 실행할 수 있습니다.

먼저 서비스 파일(/etc/systemd/system/myscript.service)을 만듭니다.

[Unit]
Description=MyScript

[Service]
Type=simple
ExecStart=/usr/local/bin/myscript

그런 다음 타이머(/etc/systemd/system/myscript.timer)를 만듭니다.

[Unit]
Description=Runs myscript one minute after boot

[Timer]
# Time to wait after booting before activation
OnBootSec=1min
Unit=myscript.service

[Install]
WantedBy=multi-user.target

이제 활성화하고 실행하십시오.

# systemctl enable myscript.timer
# systemctl start myscript.timer

답변2

Arch는 systemd를 사용하여 시작 프로세스(및 데몬 등)를 관리합니다.

원하는 명령을 간단히 실행하도록 스크립트를 작성할 수도 있고, 잠시 대기한 후 실행할 수도 있습니다. 그런 다음 위의 지침에 따라 시작 프로세스에 추가하세요.

위키피디아

수면을 추가하는 경우:

#!/bin/sh
sleep 60 # one min
netctl start bridge

그것은 잘 작동합니다. Systemd는 스크립트를 실행할 때 다른 프로세스를 생성하여 시스템이 중단되지 않도록 해야 합니다.

답변3

간단한 비차단 기능을 원한다면 /etc/rc.local에 다음을 추가하세요:

( sleep 60 && /path/to/command_or_script [opts] ) &

관련 정보