AC가 분리되어 실행되지 않을 때 전원을 끄는 크론 작업

AC가 분리되어 실행되지 않을 때 전원을 끄는 크론 작업

cron 작업을 통해 노트북이 AC에 연결되어 있지 않은 경우 노트북을 끄는 간단한 bash 스크립트를 실행하려고 합니다.

내 스크립트는 다음과 같습니다.

#!/bin/bash

if ! on_ac_power; then 
    poweroff          
fi

그리고 매분마다 실행되도록 cron을 구성했습니다.

*/1 * * * * /home/user/Documents/script.sh

수동으로 실행하면 스크립트가 제대로 작동하지만 그렇지 않으면 cron에서는 아무런 효과가 없는 것 같습니다.

내가 여기서 무엇을 놓치고 있는 걸까요?

답변1

우선 나는 루트에서 크론을 실행하지 않았습니다.

분명히 cron이 루트에서 실행되려면 를 추가해야 합니다 sudo crontab -e. 으로만 추가한 것은 crontab -esudo로 실행되지 않습니다.

참조에서 지적한 두 번째 :

cron은 기본적으로 매우 제한된 환경에서 실행되므로 사용자 터미널에서 명령 이름을 통해 실행되는 많은 명령은 경로를 확장하기 위해 crontab의 전체 경로 또는 crontab 시작 부분의 선언이 필요합니다.

그래서 결국 스크립트에서 poweroffby 로 교체했고 이제 예상대로 실행됩니다./sbin/shutdown

#!/bin/bash

if ! on_ac_power; 
then 
    /sbin/shutdown        
fi

참조

관련 정보