Debian에서 루트로 자동 실행되도록 스크립트(create_ap)를 예약해야 합니다. 이를 위해 cron(sudo crontab -e)을 사용했습니다. 작동하지만 작동하지 않습니다. 이는 일반 사용자가 sudo를 사용하여 스크립트를 실행할 때와 환경이 다르기 때문인 것 같습니다. 그렇다면 이 스크립트가 자동으로 실행되도록 적절하게 예약하려면 어떻게 해야 할까요?
답변1
필요한 환경 변수를 자동 실행 스크립트에 복사하기만 하면 됩니다. 해킹처럼 보이지만 작동합니다.
고쳐 쓰다. 시작 시 자동으로 스크립트를 루트로 실행해야 합니다. 일반 사용자가 sudo를 사용하여 수동으로 시작하면 제대로 작동합니다. 하지만 cron(@reboot 문)으로 시작하면 아무런 효과가 없습니다. 차이점을 찾기 위해 이러한 명령의 출력을 id, env, iwconfig 파일에 덤프하는 작은 스크립트를 만들었습니다. 2회 실행: 사용자가 sudo를 실행하고 cron이 예약합니다. 이 로그에서 cron이 잘린 환경으로 스크립트를 시작하고 PATH가 짧아 보이고 iwconfig도 찾을 수 없다는 사실을 발견했습니다. 이 문제를 해결하기 위해 텍스트 편집기를 사용하여 2개의 환경 변수(PATH 및 SHELL)를 원본 스크립트에 복사했습니다. 이제 스크립트는 상단에 2개의 추가 문자열만 있으면 동일하게 보입니다.
내보내기 PATH=full_path_from_env
SHELL=/bin/bash 내보내기
잘 작동합니다.