😇
【Python】LINEからYoutubeの曲や動画を落としたい3/3
概要
・【Python】LINEからYoutubeの曲や動画を落としたい1/3
・【Python】LINEからYoutubeの曲や動画を落としたい2/3
・【Python】LINEからYoutubeの曲や動画を落としたい3/3
・Githubへアップロードしました。
・その他
マルチプロセス+ノンブロッキング処理
LINE BOT実行プログラムの作成
前回ではメインとなる部分のプログラムを作成しました。
今回はそのプログラムを常時させるためのシェルスクリプトを作成します。
なお、screenを使いますのでインストールしてない方は行ってください。
# yum -y install screen
シェルスクリプト作成
$ cd $HOME/line
$ vim start.sh
start.sh
#!/bin/bash
DIR=$(cd $(dirname $0); pwd)
PID=$(ps x |grep app.py |grep -v grep |awk '{print $1}')
case "$1" in
"start" )
env python $DIR/app.py > /dev/null &
env ngrok http -region=ap 9000
;;
"restart" )
if [[ $PID != "" ]]; then
kill $PID
sleep 1
fi
env python $DIR/app.py > /dev/null &
env ngrok http -region=ap 9000
;;
"stop" )
if [[ $PID != "" ]]; then
kill $PID
else
echo "pid does not exist."
fi
;;
"status" )
if [[ $PID != "" ]]; then
echo "running PID:"$PID
else
echo "not running."
fi
;;
* )
if [[ $PID != "" ]]; then
kill $PID
sleep 5
fi
env python $DIR/app.py > /dev/null &
env ngrok http -region=ap 9000
esac
注意点としては、ngrokを使用する場合はリージョンを**-region=ap**に変更する必要があります。
指定しなかった場合は、Webhook設定でステータスコード200が返ってこない可能性があります。
実はngrokはセキュリティ上の問題で、LINE側で一部制限を掛けているそうです。詳細について
実行と確認
それでは実行して確認します。
$ chmod +x start.sh
$ screen
$ ./start.sh
//抜ける場合
Ctrl a + d
//入る場合
screen -r
//screen一覧
screen -ls
//screenの終了
実行中ならCtrl + d
暫く(1,2分)してからLINE DeveloperでWebhook設定を行い確認を行います。
URLはhttps://xxxxxxxx.ap.ngrok.io/callbackという風にして検証ボタンを押し、200が返ってきたら成功です。
LINEアプリから実際に入力し、確認してみてください。
それではまた次回でお会いしましょう。閲覧いただきありがとうございました。
Discussion