HOTSPOT, CONNECTING, CONNECTED 등과 같은 이벤트를 제공하는 Wi-Fi 관리자와 함께 실행되도록 이 bash 설정을 구성했습니다.
스크립트가 실행될 때까지 Wifi 관리자가 일시적으로 일시 중지되므로 스크립트가 완료될 때까지 기다리지 않고 이벤트를 기반으로 스크립트를 실행하고 즉시 반환하고 싶습니다.
#!/bin/bash
Logfile="/home/arjun/Desktop/bash/logfile.txt"
echo "Started" >> $Logfile
if [ "$1" == "CONNECTING" ]; then
echo "args CONNECTING" >> $Logfile
elif [ "$1" == "HOTSPOT" ]; then
echo "args HOTSPOT" >> $Logfile
kill $(< my_sinatra_server.pid)
elif [ "$1" == "CONNECTED" ]; then
echo "args CONNECTED" >> $Logfile
nohup ~/Desktop/ruby/sinatra/api/api.rb >> /log/file 2>&1 &
echo $! > my_sinatra_server.pid
echo "PID is $(< my_sinatra_server.pid)"
else
echo "Invalid args" >> $Logfile
fi
echo "bye:-)" >> $Logfile
잘 실행되고 있지만 Python 및 Nodejs 스크립트뿐만 아니라 다른 스크립트도 실행해야 합니다.
어떻게 추가할 수 있나요? 루비 랑 비슷한가요 nohup
? nohup
각 스크립트에 새 줄을 추가하시겠습니까? 이로 인해 통제권 반환이 지연됩니까?
다른 실행 가능한 bash 파일에 위임하려는 경우 nohup
이러한 모든 명령을 새 bash 파일에 복사하고 즉시 Wifi 관리자로 제어권을 되돌릴 수 있습니까? 이게 훨씬 낫지 않을까요? 어떻게 해야 하나요?
답변1
루비의 노힙과 비슷한가요? 각 스크립트에 새로운 nohup 줄을 추가하시겠습니까? 이로 인해 통제권 반환이 지연됩니까?
설정한 패턴은 nohup
백그라운드에서 명령을 사용 &
하고 PID를 $!
파일에 기록하는 것입니다. 이는 이러한 종류의 작업에 사용되는 일반적인 패턴입니다.
계속해서 이 모드를 사용하고 이 방식으로 시작하려는 모든 프로세스를 백그라운드로 설정하고 해당 PID를 파일에 기록하십시오.
이것을 다른 실행 가능한 bash 파일에 위임하려면 nohup 명령을 모두 새 bash 파일에 복사하고 즉시 Wifi 관리자로 제어권을 되돌릴 수 있습니까? 이게 훨씬 낫지 않을까요? 그럼 어떻게 해야 하나요?
예, 이러한 모든 명령을 다른 스크립트로 이동하고 단 한 번의 호출로 호출할 수 있습니다. 이것이 좋은지 나쁜지 말하기는 어렵습니다. 이는 모두 달성하려는 목표와 관리 방법에 따라 다릅니다.
이를 수행하는 방법에 관해서는 이미 무엇을 해야할지 알고 있는 것 같습니다. 모든 것을 스크립트에 넣고 WiFi 관리자 애플리케이션에서 호출하세요.
일부 매개변수를 스크립트에 전달해야 할 수도 있습니다. 이렇게 하려면 다음과 같이 이 스크립트를 호출하면 됩니다.
my_sub_cmd.bash $arg1 $arg2
$1
그런 다음 등을 통해 해당 명령에 $2
명령줄 인수를 전달합니다 .