스크립트가 cron 대신 사용자로 실행되는 이유는 무엇입니까?

스크립트가 cron 대신 사용자로 실행되는 이유는 무엇입니까?

포트 4000이 열려 있고 수신 대기 중인지 확인하고 true를 반환하면 로그 파일도 출력하는 서비스를 시작하는 스크립트가 있습니다. 사용자로 실행하면 스크립트가 제대로 실행되지만 cron으로 추가하면 실행되지 않습니다. 나는 루트로 로그인했고 스크립트는 루트가 소유하고 있으며 스크립트에는 실행 권한이 있으며 crontab -e루트로 실행하고 있습니다.

#!/bin/bash
if lsof -Pi :4000 -sTCP:LISTEN -t >/dev/null ; then
    return 1
else
    seoserver -p 4000 start > /var/www/vhosts/domain.com/httpdocs/seoserver.log &
fi

이건 내 크론이야

*/5     *       *       *       *       /usr/bin/seoStart

답변1

Cron은 사용자가 소유한 공개 환경 변수($PATH 포함)로 시작되지 않습니다.

cron에 전체 경로가 있는 것은 좋지만 이를 스크립트에 추가해야 합니다.

which lsof

그리고

which seoserver

완전한 길을 알려줄 것입니다. lsof및 대신 이것을 사용하도록 스크립트를 수정하십시오 seoserver.

관련 정보