[PHP-users 14666]Re: PHPから、長時間かかる処理をバックグラウンドで呼びたい

SATOH Fumiyasu fumiya @ samba.gr.jp
2003年 4月 15日 (火) 19:56:03 JST


At Mon, 14 Apr 2003 17:14:09 +0900,
Hirotaka Yamamoto wrote:
> 推測になりますが、SunONEでは子プロセス(CGI)の
> 終了待ちに waitpid でプロセスグループごと待って
> いたりするのではないでしょうか。

これが本件の原因に該当するかどうかはさておき、

> 多分、
> 
> if ( fork() == 0 )
> {
>     setpgid(0, 0);
>     // CGI 起動
> }
> 
> とかしていて。そうするとシェルでは子プロセスの
> プロセスグループを変更できないので回避は辛いですね。

daemontools 付属の pgrphack コマンドを利用するとか。

NAME
       pgrphack - runs a program in a separate process group.

SYNOPSIS
       pgrphack child

DESCRIPTION
       pgrphack runs child in a new process group.

SEE ALSO
       supervise(8),  svc(8), svok(8), svstat(8), svscanboot(8),
       svscan(8), readproctitle(8),  fghack(8),  multilog(8), 
       tai64n(8),   tai64nlocal(8),   setuidgid(8),
       envuidgid(8), envdir(8), softlimit(8), setlock(8)

       http://cr.yp.to/daemontools.html

Linux 系の環境であれば、util-linux に setsid(1) という
コマンドもあります。

-- 
-- Name: SATOH Fumiyasu  -- Home: http://www.sfo.jp (in Japanese only)
-- Mail: fumiya @net-thrust.com, @samba.gr.jp, @namazu.org or ...


PHP-users メーリングリストの案内