system("/usr/bin/MediaServer &;pkill audioservice 2>/dev/null;audioservice &");
这个是不正确的。必须拆分为三句:
system("pkill audioservice 2>/dev/null");
system("/usr/bin/audioservice &");
system("/usr/bin/MediaServer &");
原因是system()必须等上一句返回后,才可以新开一个临时的fork进程进行处理。在同一句里面,fork多个进程,是不被允许的。