我有一个长期运行的,守护进程的Python进程,它使用子进程在发生某些事件时生成新的子进程.长时间运行的进程由具有超级用户权限的用户启动.我需要它生成的子进程作为不同的用户(例如,"nobody")运行,同时保留父进程的超级用户权限.
我正在使用
su -m nobody -c <program to execute as a child>
Run Code Online (Sandbox Code Playgroud)
但这似乎是重量级的,并不会非常干净地死去.
有没有办法以编程方式完成此操作而不是使用su?我正在查看os.set*uid方法,但Python std lib中的doc在该领域非常稀少.
我正在尝试嵌入一个HTML5音频元素,指向由PHP文件提供的MP3或OGG数据.当我在Safari中查看页面时,会显示控件,但UI会显示"直播".单击播放时,音频将按预期启动.但是,一旦结束,我就无法通过点击播放再次开始播放.即使在audio元素上使用JS API并将currentTime设置为0也会因索引错误异常而失败.
我怀疑PHP脚本中的标题是问题,特别是缺少内容长度.但事实并非如此.响应头包括适当的Content-Length以指示音频具有有限的大小.此外,一切都在Firefox 3.5+中按预期工作.我可以多次点击音频元素上的播放来听到声音重播.
如果我从等式中删除PHP脚本并提供MP3文件的静态副本,那么在Safari中一切正常.
这是否意味着Safari使用查询参数处理音频src URL与使用查询参数的URL不同?有人有幸运气吗?
我的简单示例页面是:
<!DOCTYPE html>
<html>
<head></head>
<body>
<audio controls autobuffer>
<source src="say.php?text=this%20is%20a%20test&format=.ogg" />
<source src="say.php?text=this%20is%20a%20test&format=.mp3" />
</audio>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
来自PHP脚本的HTTP标头:
HTTP/1.x 200 OK
Date: Sun, 03 Jan 2010 15:39:34 GMT
Server: Apache
X-Powered-By: PHP/5.2.10
Content-Length: 8993
Keep-Alive: timeout=2, max=98
Connection: Keep-Alive
Content-Type: audio/mpeg
Run Code Online (Sandbox Code Playgroud)
来自直接文件访问的HTTP标头:
HTTP/1.x 200 OK
Date: Sun, 03 Jan 2010 20:06:59 GMT
Server: Apache
Last-Modified: Sun, 03 Jan 2010 03:20:02 GMT
Etag: "a404b-c3f-47c3a14937c80"
Accept-Ranges: bytes
Content-Length: 8993
Keep-Alive: timeout=2, max=100
Connection: Keep-Alive …Run Code Online (Sandbox Code Playgroud) XCode 3.2可以在10.5.x Leopard上运行吗?或者它只适用于Snow Leopard(10.6)?