質問するログイン新規登録

質問編集履歴

3

解決策の追記

2021/02/18 05:09

投稿

MasatoN
MasatoN

スコア0

title CHANGED
File without changes
body CHANGED
@@ -149,4 +149,33 @@
149
149
  $cd ~/hubot/pibot/bin
150
150
  $. run_hubot.sh
151
151
  ```
152
- 上のコマンドの結果として、Slack上でHubotが起動したのを確認できたので、問題はpibot.service側にあるのではないかと考えています。ただ、その解決策はまだ見つかりません。
152
+ 上のコマンドの結果として、Slack上でHubotが起動したのを確認できたので、問題はpibot.service側にあるのではないかと考えています。ただ、その解決策はまだ見つかりません。
153
+
154
+ **3.run_hubot.shの編集**
155
+ アドバイスを受けて、run_hubot.shにexit 0を追記してみましたが、同様のエラーが出てしまいました。
156
+ /home/pi/hubot/pibot/bin/run_hubot.sh
157
+ ```ここに言語を入力
158
+ #!/bin/sh
159
+ cd /home/pi/hubot/pibot
160
+ sudo -u pi bin/hubot --adapter slack
161
+ exit 0
162
+ ```
163
+ ```ここに言語を入力
164
+ $cd /etc/systemd/system
165
+ $sudo systemctl daemon-reload
166
+ $sudo systemctl start pibot.service
167
+ $systemctl status pibot
168
+ ● pibot.service - pibot service
169
+ Loaded: loaded (/etc/systemd/system/pibot.service; enabled; vendor preset: en
170
+ Active: failed (Result: exit-code) since Thu 2021-02-18 14:02:25 JST; 18s ago
171
+ Process: 1533 ExecStart=/home/pi/hubot/pibot/bin/run_hubot.sh (code=exited, st
172
+ Main PID: 1533 (code=exited, status=203/EXEC)
173
+
174
+ 2月 18 14:02:25 raspberrypi systemd[1]: pibot.service: Failed with result 'exit
175
+ 2月 18 14:02:25 raspberrypi systemd[1]: pibot.service: Service RestartSec=100ms
176
+ 2月 18 14:02:25 raspberrypi systemd[1]: pibot.service: Scheduled restart job, r
177
+ 2月 18 14:02:25 raspberrypi systemd[1]: Stopped pibot service.
178
+ 2月 18 14:02:25 raspberrypi systemd[1]: pibot.service: Start request repeated t
179
+ 2月 18 14:02:25 raspberrypi systemd[1]: pibot.service: Failed with result 'exit
180
+ 2月 18 14:02:25 raspberrypi systemd[1]: Failed to start pibot service.
181
+ ```

2

試したことの追記

2021/02/18 05:09

投稿

MasatoN
MasatoN

スコア0

title CHANGED
File without changes
body CHANGED
@@ -125,8 +125,11 @@
125
125
  ```
126
126
 
127
127
  ### 試したこと
128
+ **1.pibot.serviceのRestartの変更**
128
129
  [https://teratail.com/questions/242215](https://teratail.com/questions/242215)
129
130
  上のリンクにRestart=always にするとデーモン化に失敗してしまうと書いてあったので、代わりに以下のコードを試してみましたが、同様のエラーが生まれました。
131
+
132
+ /etc/systemd/system/pibot.service
130
133
  ```ここに言語名を入力
131
134
  [Unit]
132
135
  Description=pibot service
@@ -138,4 +141,12 @@
138
141
 
139
142
  [Install]
140
143
  WantedBy=multi-user.target
141
- ```
144
+ ```
145
+
146
+ **2.run_hubot.shの実行確認**
147
+ run_hubot.shが正しくない可能性を確認するために、ターミナルでシェルスクリプトの実行を行いました。
148
+ ```ここに言語を入力
149
+ $cd ~/hubot/pibot/bin
150
+ $. run_hubot.sh
151
+ ```
152
+ 上のコマンドの結果として、Slack上でHubotが起動したのを確認できたので、問題はpibot.service側にあるのではないかと考えています。ただ、その解決策はまだ見つかりません。

1

不明瞭な点が多かったため、追記しました。

2021/02/13 02:05

投稿

MasatoN
MasatoN

スコア0

title CHANGED
File without changes
body CHANGED
@@ -1,13 +1,13 @@
1
1
  ### 前提・実現したいこと
2
- 以下のサイトを参考にして、HUBOTをRapberryPiでデーモン化するコードを書いています。
2
+ 以下のサイトを参考にして、RapberryPiでHubotをSlackに繋げそれをデーモン化するコードを書いています。
3
3
 
4
4
  [Raspberry PiにhubotをインストールしてSlackから呼び出すまでの手順](https://qiita.com/s_harada/items/c10b1322daec5521b261)
5
5
 
6
- HUBOTを設定してSlack繋げるまではできたのですが、それをデーモン化するコードで躓
6
+ HubotとSlack繋げるまではできたのですが、デーモン化するところが上手くせん
7
- RaspberryPiに関しては完全に初心者でエラー原因が分からないので、解決方法を教えていただけると幸いです。
7
+ RaspberryPiに関しては完全に初心者でエラー原因が分からないので、解決方法を教えていただきたいです。
8
8
 
9
9
  ### 発生している問題・エラーメッセージ
10
- systemdに作成した設定ファイルの動作確認をすると以下のようなエラーが出てしまいました。
10
+ systemdに作成した設定ファイルpibot.serviceの動作確認をすると以下のようなエラーが出てしまいました。
11
11
  ```
12
12
  pi@raspberrypi:/etc/systemd/system $ systemctl status pibot
13
13
  ● pibot.service - pibot service
@@ -22,30 +22,77 @@
22
22
  2月 10 10:38:17 raspberrypi systemd[1]: pibot.service: Failed with result 'exit-code'.
23
23
  2月 10 10:38:17 raspberrypi systemd[1]: Failed to start pibot service.
24
24
  ```
25
+ pibot.service
26
+ ```ここに言語を入力
27
+ [Unit]
28
+ Description=pibot service
25
29
 
30
+ [Service]
31
+ ExecStart=/home/pi/hubot/pibot/bin/run_hubot.sh
32
+ Restart=always
33
+ Type=simple
34
+
35
+ [Install]
36
+ WantedBy=multi-user.target
37
+ ```
26
- ### 該当のソコード
38
+ ### エラーコードが出た経緯
39
+ **1. Hubotの設定**
40
+ まず、RaspberryPiの/home/pi/hubot/pibotディレクトリを作り、そこでyo hubotを実行しhubotの作成を行いました。
41
+ ```ここに言語を入力
42
+ $cd ~/hubot/pibot
43
+ $yo hubot
44
+ ```
27
- まず下ようにhubotの設定ファイルにパス通しました。
45
+ Hubotの設定を以下のように行いました。
46
+
47
+ Owner:自分のメールアドレス
48
+ Bot name:pibot
49
+ Description:適当な値
50
+ Bot adapter:slack
51
+
52
+ 設定した後に```$bin/hubot```と```pibot ping```を実行すると、HUBOTからPONGと返ってきたのが確認できました。
53
+
54
+ **2.SlackとHubotを繋げる**
55
+ 次にSlackにHubotを追加したのち、APIトークンをコピーしました。
56
+ ![イメージ説明](567abd2aacd32933f0a881eab6ed1d8b.jpeg)
57
+ その後、~/hubot/pibotディレクトリの中で、hubotの設定ファイルを開きました。
58
+ ```ここに言語を入力
59
+ $cd ~/hubot/pibot
60
+ $nano bin/hubot
61
+ ```
62
+ 上のコマンドをターミナルに打つと下のようなテキストエディタが開かれたので、取得したAPIトークンをペーストしました。
28
63
  ```ここに言語名を入力
29
64
  #!/bin/sh
30
65
 
31
66
  set -e
32
67
 
33
68
  npm install
34
- export HUBOT_SLACK_TOKEN=xoxb-1687056892356-1693521603667-3StDqEPhf3r2aiYNw1F8Nx1q
69
+ export HUBOT_SLACK_TOKEN=(取得したSlackのAPIトークン)
35
70
 
36
71
  export PATH="node_modules/.bin:node_modules/hubot/node_modules/.bin:$PATH"
37
72
 
38
73
  exec node_modules/.bin/hubot --name "pibot" "$@"
39
74
 
40
75
  ```
76
+ ターミナルに戻り、```$bin/hubot -a slack```を実行してみると、Slack上でHubotが反応しているのが確認できました。
77
+ **3.Hubotのデーモン化**
41
- そして上のコードと同じディレクトリにbin/hubotを実行するシェルスクリプトを作成しました。
78
+ まずbin/hubotと同じディレクトリにrun_hubot.shというシェルスクリプトを作成しました。
79
+ ```ここに言語を入力
80
+ $cd /home/pi/hubot/pibot/bin
81
+ $sudo nano run_hubot.sh
42
82
  ```
83
+ run_hubot.sh
84
+ ```
43
85
  #!/bin/sh
44
86
  cd /home/pi/hubot/pibot
45
87
  sudo -u pi bin/hubot --adapter slack
46
88
  ```
47
- その後、systemd/systemフォルダにサービス起動用の設定ファイルを追加し、これの動作確認をてみところ上述のようなエラーが出てしまいます
89
+ その後、systemd/systemフォルダに移動しサービス起動用の設定ファイルpibot.serviceを追加しした。
90
+ ```ここに言語を入力
91
+ $cd /etc/systemd/system
92
+ $sudo nano pibot.service
48
93
  ```
94
+ pibot.service
95
+ ```
49
96
  [Unit]
50
97
  Description=pibot service
51
98
 
@@ -57,6 +104,26 @@
57
104
  [Install]
58
105
  WantedBy=multi-user.target
59
106
  ```
107
+ その後、pibot.serviceが正しく実行できているかどうかを確認するために、ターミナルで以下のコマンドを実行しましたが、上述のようなエラーが出てしまいました。
108
+ ```ここに言語を入力
109
+ $sudo systemctl daemon-reload
110
+ $systemctl status pibot
111
+ ```
112
+ ```
113
+ pi@raspberrypi:/etc/systemd/system $ systemctl status pibot
114
+ ● pibot.service - pibot service
115
+ Loaded: loaded (/etc/systemd/system/pibot.service; enabled; vendor preset: enabled)
116
+ Active: failed (Result: exit-code) since Wed 2021-02-10 10:38:17 JST; 31min ago
117
+ Main PID: 2276 (code=exited, status=203/EXEC)
118
+
119
+ 2月 10 10:38:17 raspberrypi systemd[1]: pibot.service: Service RestartSec=100ms expired, scheduling restart.
120
+ 2月 10 10:38:17 raspberrypi systemd[1]: pibot.service: Scheduled restart job, restart counter is at 5.
121
+ 2月 10 10:38:17 raspberrypi systemd[1]: Stopped pibot service.
122
+ 2月 10 10:38:17 raspberrypi systemd[1]: pibot.service: Start request repeated too quickly.
123
+ 2月 10 10:38:17 raspberrypi systemd[1]: pibot.service: Failed with result 'exit-code'.
124
+ 2月 10 10:38:17 raspberrypi systemd[1]: Failed to start pibot service.
125
+ ```
126
+
60
127
  ### 試したこと
61
128
  [https://teratail.com/questions/242215](https://teratail.com/questions/242215)
62
129
  上のリンクにRestart=always にするとデーモン化に失敗してしまうと書いてあったので、代わりに以下のコードを試してみましたが、同様のエラーが生まれました。