파일에 텍스트를 쓰는 스크립트가 있습니다. 쉘에서 수동으로 호출하면 제대로 작동하지만 cron에서 호출하면 제대로 작동하지 않는 것 같습니다. 파일이 생성되었지만 아무것도 기록되지 않았습니다 /tmp/tx_buf
. 스크립트는 다음과 같습니다.
#!/bin/bash
declare -i Threshold=1000
tmpfile="/tmp/tx_buf"
if [ -e $tmpfile ]
then
echo "$tmpfile exists, read value"
typeset -i last=$(cat $tmpfile)
echo $last
fi
typeset -i val=$(cat /sys/class/net/eth0/statistics/tx_packets)
echo $val > $tmpfile
declare -i diff=`expr $val - $last`
echo "difference: $diff"
if [[ "$diff" -gt "$Threshold" ]]
then
echo "music is playing, invoke action"
`xdotool mousemove_relative 1 1`
else
echo "no music playing, ignore"
fi
왜냐, 놀랐지?
답변1
다음을 통해 문제 해결을 수행할 수 있습니다.
스크립트 헤더를 다음과 같이 변경합니다.
#!/bin/bash 1>/tmp/$0.log 2>&1을 실행합니다. 세트-x ...나머지 스크립트를 여기에 삽입하세요...
cron이 스크립트를 시작한 후에는 다음과 같은 파일을 찾아야 합니다.
/tmp/.log
이는 런타임에 무슨 일이 일어나고 있는지에 대한 자세한 정보를 제공해야 합니다.