XserverでDiscordの自作BOTを常駐化

シェアする

DiscordのBOTを外部サーバー上のPythonで動作させて常駐できたのでメモ程度ですが載せておきます。

抜け等あると思いますので参考程度としてください。

まず外部サーバーは、前回のPython環境構築と動作確認の記事で紹介したXserverを使用します。

Discord用にBOTを作る
DiscordのBOTって様々な種類があ...

サーバー上にPython環境を用意する

Xserverは初めからPythonが搭載されていますが、Discord.pyの推奨ではバージョン3.4又は3.5となっています。サーバー上では2.7と古い物ですので新たにインストールする必要がありました。

但し、Xserverはroot権限を得られないためこれが大きな壁となりました。

まず、既にXserverへPython環境を構築する方法を見つけている方がいましたので参考しました。

参考:https://fx.ichizo.biz/2017/03/24/xserver-python-anaconda.html

私の環境ではanaconda3-5.1.0をインストールしました。
Pythonのバージョンは3.6.4となります。

上記サイトの不足事項として、サーバーにインストール後パスを記述した後再起動が出来ないので“source ~/.bashrc”“source ~/.bash-profile”で書き換えを反映する必要があります。

ついでとして、後述で必要となるパスも追加しておきます。

export PYTHONPATH="$HOME/.pyenv/versions/anaconda3-5.1.0/lib/python3.6/site-packages:$PYTHONPATH"
export PATH="$HOME/local/bin:$PATH"
export PATH="$HOME/.pyenv/versions/anaconda3-5.1.0/bin:$PATH"

管理者権限なしでpipを使う

pipを使用してinstallを実行すると権限の問題でエラーが発生します。
それを回避するためにdistro.pyを書き換えます。

参考:https://qiita.com/EEEprog/items/cc8043662f3596fdc817

これでdiscord.pyがインストールできるかと思います。

BOTを常駐させる

BOTを起動した後、ログアウトすると常時起動のサーバーでもプロセスが停止します。

それを防ぐために“python3 bot.py”で起動するのではなく“nohup python3 bot.py < /dev/null &”で起動します。

これでログアウト後もBOTは起動したままとなります。

停止方法はプロセスを直接停止ます。“ps x”でpythonのPIDを確認し“kill”でプロセスを停止できます。

これで実際に動かす準備が出来たといったところでしょうか。

後は、希望の動作をするBOTをプログラムする必要がありますがPythonはあまり分かっていないので先が大変そうです。

フォローする