前提・実現したいこと
Pythonで書いたslackbotのデーモン化を行いたいです。
【環境】
- Raspberry pi 3 Model b ver.2
- Raspbian 9.9 streach
上記の環境で
home/pi/Desktop/smart_home-master/bot_file/run.py
というプログラムをsystemdを用いてデーモン化し常駐起動させたいと考えています。
発生している問題・エラーメッセージ
les syslog
でログを確認すると、
log
1Faled at step EXEC spawning /home/pi/Desktop/smart_home-maste/bot_file/run.py: Permission denied
と表示されていたので、run.pyの実行権限がないのかと思い、
chmod 0755 run.py
を実行
ls -l
で権限を確認して755の状態になっていることを確認し、
再度、
sudo systemctl daemon-reload sudo systemctl start run.service sudo systemctl status run.service
を実行するもののstatusがFailedになってしまう。再度ログを見てもエラーメッセージが変わらず
log
1Faled at step EXEC spawning /home/pi/Desktop/smart_home-maste/bot_file/run.py: Permission denied
となる。
該当のソースコード
run.pyは以下の通り
Python
1#!/usr/bin Python3 2from slackbot.bot import Bot 3import time 4 5def main(): 6 bot = Bot() 7 bot.run() 8 9if __name__ = "__main__": 10 time.sleep(3) 11 print("home_manager起動") 12 main()
/etc/systemd/system/run.serviceは以下の通り
Service
1[Unit] 2Description = run.py Daemon 3 4[Service] 5User=root 6WorkingDirectory=/home/pi/Desktop/smart_home-master/bot_file 7ExecStart=/home/pi/Desktop/smart_home-master/bot_file/run.py 8Restart=always 9Type=simple 10 11[Install] 12WantedBy=multi-user.target
試したこと
- sudo rebootの実行
- supervisorの利用(ログファイルが発見されないとのエラーで失敗、ログファイルは作成済みかつ777の権限に設定した。
)
- repeat too quicklyにならないように関数内にsleep追記(おそらくプログラムを走らせる以前の問題のため効果なし)
- 一行目に#!/usr/local/pythonを追記(上記同様、プログラム走る前の問題と考えられるため効果なし)

あなたの回答
tips
プレビュー