我正在为iOS编写一个应用程序,该应用程序将启动php二进制文件作为子进程。
使用以下代码:
NSString * command = @"/bin/sh -c '";
command = [command stringByAppendingString:[BibleditPaths php]];
command = [command stringByAppendingString:@" -v' > /tmp/php.txt 2>&1"];
int output = system ([command UTF8String]);
NSString* msg = [@(output) stringValue];
NSLog(msg, @"");
php二进制文件可以在越狱的iPad上从命令行启动。这是输出:
PHP 5.4.31 (cli) (built: Aug 19 2014 11:06:21)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
当从上面的代码启动php二进制文件时,iOS会发送SIGKILL信号。php二进制文件不会运行或产生任何输出。
/bin/sh产生以下输出:
sh: line 1: 2806 Killed: 9 /bin/sh -c '/var/mobile/Applications/DFE552CC-ECBE-4A73-82CF-24870E5D9F62/Library/usr/local/bin/php -v' > /tmp/php.txt 2>&1
2014-09-15 17:33:41.676 PHPRunner[2804:60b] 35072
我该怎么做才能让iOS成功运行此进程?
这个问题发布在Apple iOS开发论坛上(https://devforums.apple.com/index.jspa)。
那里的反应是:
"在iOS上,这些都不受支持(或应用程序沙箱允许)。"
随后,该问题被从论坛上删除。
我将答案张贴在这里,以便为公众保留信息。