質問編集履歴

1

試したこと の追記

2021/10/27 23:18

投稿

kio123
kio123

スコア0

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 となったが動画ファイルは生成されていませんでした。