回答編集履歴

1

間違えました

2015/02/26 03:21

投稿

moeru_gomi
moeru_gomi

スコア42

test CHANGED
@@ -1,5 +1,67 @@
1
- ```lang-<ここ言語を入力>
1
+ コメントしようとして失敗しました。すいません。
2
2
 
3
+
4
+
5
+ > 時間のかかる処理をbackgroundで処理して、ブラウザ上は終了させたいのですが、うまく子プロセスが動いてくれません。Windowsだからでしょうか?
6
+
7
+
8
+
9
+ 先ず、Windowsには `fork` がないので
10
+
11
+ ```lang-perl
12
+
13
+ my $pid = fork;
14
+
15
+ # forkが失敗した場合はエラー処理を行う
16
+
17
+ unless (defined $pid) {
18
+
19
+ die "fork faild.";
20
+
3
- コード
21
+ }
4
22
 
5
23
  ```
24
+
25
+ は、恐らく無駄でしょう。
26
+
27
+
28
+
29
+ > [バックグラウンドでプロセスを起動するには?](http://perldoc.jp/docs/perl/5.14.1/perlfaq8.pod#How32do32I32start32a32process32in32the32background63)
30
+
31
+ 上記にある
32
+
33
+ ```lang-perl
34
+
35
+ system("cmd &")
36
+
37
+ ```
38
+
39
+ が、Windowsでは
40
+
41
+ ```lang-perl
42
+
43
+ system("start cmd")
44
+
45
+ ```
46
+
47
+ にあたります。
48
+
49
+
50
+
51
+ Windows環境が手元に無いので試せないので、試せないのが恐縮ですが
52
+
53
+ ```lang-perl
54
+
55
+ system("start", "perl C:/inetpub/wwwroot/data/script/test_001.pl");
56
+
57
+ ```
58
+
59
+ や `start` のオプションなどでなんとかならないでしょうか。
60
+
61
+
62
+
63
+ あとは、動かないと言うのがどういう風に動かないのかが気になります。
64
+
65
+ 動かないと仰っているのは、`test_001.pl` の実行結果を待ってしまうと言う事でしょうか?
66
+
67
+