我有一个通过 Net::Server 模块运行 TCP 侦听器的 perl 脚本。当远程连接到 perl 服务器时,远程发送一个要播放的 mp3 音乐文件的文件名。当我 fork() 然后调用 system('mpg123 $filename') 时,客户端挂起。如何使 mpg123 进程成为后台,以便孩子可以关闭连接?
my $pid = fork();
if (defined $pid && $pid == 0)
{
# child process -- never gets to print statement until $cmd is done
system ($cmd);
print STDERR "child launched\n";
exit (0);
}