FreeBSD控制nspluginwrapper多余进程的方法

FreeBSD控制nspluginwrapper多余进程的方法

问题

使用nspluginwrapper(/usr/ports/www/nspluginwrapper)在Firefox中播放Flash的同学可能会发现:关闭Flash页面后,有个名为“npviewer.bin”的进程仍然驻留,随着打开/关闭/切换Flash页面次数的增多,最后进程表里会有N个“npviewer.bin”进程,并且占据了大量内存,只能手动执行“killall npviewer.bin”。

解决方案

step1:

在你的用户目录下建立一个sh脚本,比如/home/yhs/bin/flashkiller。
脚本内容如下:

#!/bin/sh
flashcount=$(/bin/pgrep npviewer.bin | /usr/bin/wc -l)
if [ $flashcount = 1 ]
then
/usr/bin/killall npviewer.bin
fi

step2:

命令行下执行:

crontab -e

输入下列内容后,保存退出:

*/5 * * * * /home/yhs/bin/flashkiller > /dev/null #注意空格!

查看计划任务:

crontab -l

之后,cron守护进程将会自动执行step1中的脚本,为你清理多余的“npviewer.bin”进程。

参考

Flash leaving behind npviewer.bin ‘stuff'[URL:http://forums.freebsd.org/showthread.php?p=67155#post67155]
配置cron[URL:http://www.freebsd.org/doc/zh_CN/books/handbook/configtuning-cron.html]

原文链接:http://wiki.freebsdchina.org/howto/f/flash_process_ctrl

FreeBSD 8.1加载linux flash插件的方法

FreeBSD 8.1加载linux flash插件的方法

pagx在FreeBSDChina发贴共享了FreeBSD 8.1加载linux flash插件的方法,本人根据其方法成功安装了flash插件,由于论坛里面的帖子比较乱,在此重新整理成笔记共享。

安装libflashcross.so

i386环境

# fetch http://btload.googlecode.com/files/nspluginbox-x86src.tar.bz2
# bunzip2 nspluginbox-x86src.tar.bz2
# cd nspluginbox-last_v2/rtld-npp
# make
# cp libflashcross.so /home/test/.mozilla/plugins/.

amd64环境

# fetch http://btload.googlecode.com/files/libflashcross-x86_64.so.tar.bz2
# bunzip2 libflashcross-x86_64.so.tar.bz2
# cp libflashcross.so /home/test/.mozilla/plugins/.

安装libflashplayer.so

直接到Adobe官网下载相应的linux版本的flashplayer压缩包,解压后拷贝到/home/test/.mozilla/目录下。

再安装alsa-lib和alsa-plugins即可。

ports分别位于:
/usr/ports/audio/alsa-lib
/usr/ports/audio/alsa-plugins

FreeBSDChina帖子原文如下:

下载这个文件解压:
http://btload.googlecode.com/files/libflashcross-i386.so.tar.bz2
将 libflash-cross.so 丢到 ~/.mozilla/plugins

从linux那边拷贝libflashplayer.so (for 10.1 r53 i386) 文件过来到
~/.mozilla

安装好之后,目录结构应该如下:
~/.mozilla/libflashplayer.so
~/.mozilla/plugins/libflashcross.so

安装alsa-lib-1.0.23, alsa-plugins-1.0.23 即可。

仅在 FreeBSD 8.1/i386, 环境下的firefox3, chrome测试成功

其他环境需要自己编译:
http://btload.googlecode.com/files/nspluginbox-last.tar.bz2

目前i386的版本已经比较稳定,存在少量的内存泄漏, 但对使用影响不大。导致firefox/chrome崩溃的问题也已经修正。

修正amd64内存泄漏(二进制文件)
http://btload.googlecode.com/files/libflashcross-x86_64.so.tar.bz2

64bit 二进制的对应的flash版本(经过测试可以使用的)是
libflashplayer-10.0.42.34.linux-x86_64.so.tar.gz 或者 libflashplayer-10.0.45.2.linux-x86_64.so.tar.gz

更新x86_64的源代码和二进制文件, 更新对10.2的支持。需要的,重新下载:
http://btload.googlecode.com/files/libflashcross-x86_64.so.tar.bz2
i386的二进制文件因为被报告有问题已经删除,需要的可以下载
http://btload.googlecode.com/files/nspluginbox-x86src.tar.bz2
这个旧版的源代码,自己编译。

源码包是一个集合,所以名字是随意另起的。
代码里面包含了,
1、npprunner: GTK写的测试NPAPI插件的程序(因为使用浏览器不太方便调试, 曾经的名字是nspluginbox)。
2、plugin-gtk: windows下某个安全控件的代替方案的实现。本来可以写支持加密的,不过想想算了,那么干会影响商业秘密的。况且未必变得安全。
3、plugin-wrap: 比较邪恶,不要看。看懂的话也请不要说出来,继续保持沉默。
4、rtld-npp: 加载linux的NPAPI插件的wrapper, 也就是 libflashcross.so

原文链接:http://www.freebsdchina.org/forum/viewtopic.php?t=50134