2016-11-23 5 views
0

셧다운시 실행되는 간단한 init.d 스크립트 "S3logrotate"를 설정했습니다. "S3logrotate"스크립트는 명령 줄에서 수동으로 실행해도 제대로 작동하지만 시스템 종료시 스크립트가 올바르게 작동하지 않습니다.init.d 스크립트를 실행하기 전에 Wifi의 연결이 끊어졌습니다.

스크립트는 내 PC에서 Amazon S3 버킷으로 로그를 업로드하며 올바르게 실행하려면 wifi가 필요합니다.

디버깅은 스크립트가 실제로 실행되었지만 업로드 프로세스가 실패 함을 증명했습니다.

이 문제는 wifi가 종료 된 후 스크립트가 실행되는 것 같습니다.

다음은 스크립트에서 인터넷 연결을 테스트하는 데 사용한 블록입니다.

if ping -q -c 1 -W 1 8.8.8.8 >/dev/null; then 
    echo "IPv4 is up" >> *x.txt* 
else 
    echo "IPv4 is down" >> *x.txt* 
fi 

if ping -q -c 1 -W 1 google.com >/dev/null; then 
    echo "The network is up" >> *x.txt* 
else 
    echo "The network is down" >> *x.txt* 
fi 

이 블록의 출력은 일 :있는 init.d 스크립트의 우선 순위를 설정하는 방법이

IPv4 is down 
The network is down 

있는가? 네트워크 연결이 끊어지기 전에 스크립트를 실행할 수 있습니까? 그렇지 않다면 init.d에 대한 대안이 있습니까?

나는 우분투 16.04를 사용하며, 중요한 경우 Windows 10으로 듀얼 부팅합니다.

chown root:root S3logrotate 

을 뿌리

/etc/NetworkManager/dispatcher.d/pre-down.d 

변화 그룹과 소유자와 그것을 작동합니다 : 당신은 당신을 배치해야

sganesan7

+0

이 Q는 StackOverflow에 정의 된 프로그래밍과 관련이 없습니다. ** ** S.E.에 더 적합 할 수 있습니다. 관련 사이트 http://askubuntu.com 또는 http://superuser.com. Q 하단의 '깃발'링크를 사용하여 운영자에게 이동하도록 요청하십시오. 2 개의 다른 사이트에 같은 Q를 게시하지 마십시오. 여기에 Q를 더 게시하기 전에 http://stackoverflow.com/help/how-to-ask http://stackoverflow.com/help/dont-ask 및 http://stackoverflow.com/help/mcve를 읽으십시오. 행운을 빕니다. – shellter

+0

'/ etc/rc6.d'의 링크는'K01'과 같은 숫자 접두어를 가져야합니다. 스크립트는 숫자 순서로 실행되므로 네트워크 연결을 종료하는 스크립트보다 낮은 번호를 지정해야합니다. – Barmar

답변

0

덕분에 전대. 당신이

별도의 인터페이스 장소 스크립트에 대해이 작업을 수행해야하는 경우

/etc/NetworkManager/dispatcher.d/ 

내부에 스크립트를 생성하고 (예를 들어)를 이름 :

wlan0-down 

을 너무 작동합니다.

관련 문제