質問編集履歴
1
試したこと の追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -28,11 +28,15 @@
|
|
28
28
|
|
29
29
|
|
30
30
|
|
31
|
+
シェルスクリプトはPHPファイルと同ディレクトリにあります。
|
32
|
+
|
33
|
+
|
34
|
+
|
31
35
|
```sh
|
32
36
|
|
33
37
|
#!/bin/bash
|
34
38
|
|
35
|
-
#rec_start.sh
|
39
|
+
#filename: rec_start.sh
|
36
40
|
|
37
41
|
cd /home/pi/mjpg-streamer/mjpg-streamer-experimental/REC
|
38
42
|
|
@@ -60,11 +64,19 @@
|
|
60
64
|
|
61
65
|
### 試したこと
|
62
66
|
|
67
|
+
rec_start.shをコマンドライン上で実行した場合、継続して処理が実行され続けることから、
|
68
|
+
|
69
|
+
PHP関数のecec()だとハングしている?と仮定しました。
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
https://www.php.net/function.exec より引用
|
74
|
+
|
75
|
+
> プログラムがこの関数で始まる場合、 バックグラウンドで処理を続けさせるには、 プログラムの出力をファイルや別の出力ストリームにリダイレクトする必要があります。 そうしないと、プログラムが実行を終えるまで PHP はハングしてしまいます。
|
76
|
+
|
63
77
|
|
64
78
|
|
65
79
|
sh のバックグラウンド実行 (コマンドの後ろに、&アンドをつけて実行)
|
66
|
-
|
67
|
-
→ $return_var = 0 となったが動画ファイルは生成されていませんでした。
|
68
80
|
|
69
81
|
|
70
82
|
|
@@ -77,3 +89,5 @@
|
|
77
89
|
|
78
90
|
|
79
91
|
```
|
92
|
+
|
93
|
+
実行結果: $return_var = 0 となったが動画ファイルは生成されていませんでした。
|