質問編集履歴
3
解決策の追記
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
試したことの追記
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
不明瞭な点が多かったため、追記しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
|
-
以下のサイトを参考にして、
|
2
|
+
以下のサイトを参考にして、RapberryPiでHubotをSlackに繋げそれをデーモン化するコードを書いています。
|
3
3
|
|
4
4
|
[Raspberry PiにhubotをインストールしてSlackから呼び出すまでの手順](https://qiita.com/s_harada/items/c10b1322daec5521b261)
|
5
5
|
|
6
|
-
|
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
|
-
|
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
|
+

|
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=
|
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
|
-
|
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 にするとデーモン化に失敗してしまうと書いてあったので、代わりに以下のコードを試してみましたが、同様のエラーが生まれました。
|