"PHP 배치 백그라운드 실행"의 두 판 사이의 차이

잔글 (봇: 자동으로 텍스트 교체 (-== 참고 자료 == +==참고==))
잔글 (봇: 자동으로 텍스트 교체 (-<source +<syntaxhighlight ))
6번째 줄: 6번째 줄:
;PHP 배치 백그라운드 실행
;PHP 배치 백그라운드 실행
*PHP 5.2.x 버전까지는 다음과 같이 [[CLI]]에서 php를 백그라운드로 실행할 수 있다.
*PHP 5.2.x 버전까지는 다음과 같이 [[CLI]]에서 php를 백그라운드로 실행할 수 있다.
<source lang='bash'>
<syntaxhighlight lang='bash'>
php 파일명.php &
php 파일명.php &
</source>
</source>
*PHP 5.3.x 버전부터는 nohup을 이용해야만 php를 백그라운드로 실행할 수 있다. (물론 이전 버전도 가능)
*PHP 5.3.x 버전부터는 nohup을 이용해야만 php를 백그라운드로 실행할 수 있다. (물론 이전 버전도 가능)
<source lang='bash'>
<syntaxhighlight lang='bash'>
nohup php 파일명.php &
nohup php 파일명.php &
</source>
</source>


==Foreground 실행==
==Foreground 실행==
<source lang='console'>
<syntaxhighlight lang='console'>
[root@zetawiki02 ~]# cat test.php
[root@zetawiki02 ~]# cat test.php
<?php
<?php
27번째 줄: 27번째 줄:
:→ 1초에 1번씩 메시지 출력하는 PHP 소스
:→ 1초에 1번씩 메시지 출력하는 PHP 소스


<source lang='console'>
<syntaxhighlight lang='console'>
[root@zetawiki02 ~]# php test.php
[root@zetawiki02 ~]# php test.php
Process #9897: i=0
Process #9897: i=0
39번째 줄: 39번째 줄:
===PHP 5.2.x 가능===
===PHP 5.2.x 가능===
PHP 5.2.10에서 돌려보니 잘 된다.
PHP 5.2.10에서 돌려보니 잘 된다.
<source lang='console'>
<syntaxhighlight lang='console'>
[root@zetawiki01 ~]# php test.php &
[root@zetawiki01 ~]# php test.php &
[1] 27991
[1] 27991
69번째 줄: 69번째 줄:
===PHP 5.3.x 불가능===
===PHP 5.3.x 불가능===
PHP 5.3.3 에서는 백그라운드 실행이 제대로 안된다.
PHP 5.3.3 에서는 백그라운드 실행이 제대로 안된다.
<source lang='console'>
<syntaxhighlight lang='console'>
[root@zetawiki02 ~]# php test.php &
[root@zetawiki02 ~]# php test.php &
[27] 9308
[27] 9308
91번째 줄: 91번째 줄:
==nohup으로 백그라운드 실행 ★==
==nohup으로 백그라운드 실행 ★==
PHP 버전에 상관없이 잘 된다.
PHP 버전에 상관없이 잘 된다.
<source lang='console'>
<syntaxhighlight lang='console'>
[root@zetawiki02 ~]# nohup php test.php &
[root@zetawiki02 ~]# nohup php test.php &
[30] 12884
[30] 12884

2020년 11월 2일 (월) 00:42 판

1 개요

How to send the process to background, In PHP CLI mode
Running PHP script from command line as background process
PHP 배치 백그라운드 실행
  • PHP 5.2.x 버전까지는 다음과 같이 CLI에서 php를 백그라운드로 실행할 수 있다.

<syntaxhighlight lang='bash'> php 파일명.php & </source>

  • PHP 5.3.x 버전부터는 nohup을 이용해야만 php를 백그라운드로 실행할 수 있다. (물론 이전 버전도 가능)

<syntaxhighlight lang='bash'> nohup php 파일명.php & </source>

2 Foreground 실행

<syntaxhighlight lang='console'> [root@zetawiki02 ~]# cat test.php <?php $pid = getmypid(); for($i=0;$i<3;$i++) {

 echo "Process #$pid: i=$i\n";
 sleep(1);

} echo "Process #$pid: done...\n"; </source>

→ 1초에 1번씩 메시지 출력하는 PHP 소스

<syntaxhighlight lang='console'> [root@zetawiki02 ~]# php test.php Process #9897: i=0 Process #9897: i=1 Process #9897: i=2 Process #9897: done... </source>

→ 정상적으로 수행된다.

3 nohup 없이 백그라운드 실행

3.1 PHP 5.2.x 가능

PHP 5.2.10에서 돌려보니 잘 된다. <syntaxhighlight lang='console'> [root@zetawiki01 ~]# php test.php & [1] 27991 [root@zetawiki01 ~]# php test.php & [2] 27992 [root@zetawiki01 ~]# php test.php & [3] 27993 [root@zetawiki01 ~]# [root@zetawiki01 ~]# [root@zetawiki01 ~]# Process #27991: i=0 Process #27992: i=0 Process #27993: i=0 Process #27991: i=1 Process #27993: i=1 Process #27992: i=1 Process #27991: i=2 Process #27993: i=2 Process #27992: i=2 Process #27991: done... Process #27993: done... Process #27992: done...

[1] Done php test.php [2]- Done php test.php [3]+ Done php test.php [root@zetawiki01 ~]# </source>

3.2 PHP 5.3.x 불가능

PHP 5.3.3 에서는 백그라운드 실행이 제대로 안된다. <syntaxhighlight lang='console'> [root@zetawiki02 ~]# php test.php & [27] 9308 [root@zetawiki02 ~]# php test.php & [28] 9309 [root@zetawiki02 ~]# php test.php & [29] 9310 [root@zetawiki02 ~]# [root@zetawiki02 ~]# [root@zetawiki02 ~]#

[27] Stopped php test.php

[28] Stopped php test.php

[29]+ Stopped php test.php [root@zetawiki02 ~]# </source>

→ 실행되지 않고 종료되어 버렸다.

4 nohup으로 백그라운드 실행 ★

PHP 버전에 상관없이 잘 된다. <syntaxhighlight lang='console'> [root@zetawiki02 ~]# nohup php test.php & [30] 12884 [root@zetawiki02 ~]# nohup php test.php & [31] 12885 nohup: ignoring input and appending output to `nohup.out' [root@zetawiki02 ~]# nohup php test.php & [32] 12886 nohup: ignoring input and appending output to `nohup.out' [root@zetawiki02 ~]# nohup: ignoring input and appending output to `nohup.out' [root@zetawiki02 ~]# [root@zetawiki02 ~]# [root@zetawiki02 ~]# [30] Done nohup php test.php [31] Done nohup php test.php [32] Done nohup php test.php [root@zetawiki02 ~]# [root@zetawiki02 ~]# cat nohup.out Process #12884: i=0 Process #12886: i=0 Process #12885: i=0 Process #12884: i=1 Process #12886: i=1 Process #12885: i=1 Process #12885: i=2 Process #12884: i=2 Process #12886: i=2 Process #12885: done... Process #12884: done... Process #12886: done... </source>

5 같이 보기

6 참고

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}