野生技术,活用exec

野生程序猿-杂烧4年前野生技术603

exec的支持,让程序有了很大的空间,尤其我们用electon开发桌面应用。我们可以调用ffmpeg处理视频、音频;我们也可以调用bat批处理;我甚至直接用exec配合各种程序开发出了远程管理工具。


那还有哪些更夸张的用法呢?

1、比方说远程管理软件,需要安装为服务,需要守护进程。都可以借助一些开源工具exec实现。安装服务借助winsw.exe;守护服务借助nodejs。

winsw.exe的配置如下

<?xml version="1.0" encoding="UTF-8" ?>
<service>
	<id>start_service.exe</id>
	<name>start_service</name>
	<description>start_service</description>
	<executable>C:\start_service\service\startservice_node.exe</executable>

	<logmode>roll</logmode>
	<depend></depend>
	<startargument>C:\start_service\service\start.js</startargument>
	<stopargument>C:\start_service\service\start.js</stopargument>
</service>

startservice_node.exe其实就是node.exe重命名;客户端集成node.exe,重命名是为了防止有些人杀node进程(有同行们采取类似方法,他们的守护进程发现程序异常了,杀所有node进程后重启)。

守护进程的工作,通过exec变成了写nodejs代码,而且是安装成了服务。


2、再比如说,客户端集成nginx。同样的把nginx重命名成app_nginx.exe,exec打开nginx,享用nginx的一些功能,如反向代理。

3、exec 定时 核对加密狗。通过定时exec检验加密狗是否正常。


当然了exec稳定性会差一些, 一般情况下必须配合守护进程使用。exec一般是会开启n个子进程或新进程。子进程会随着主进程关闭而关闭,产生一定影响;新进程就是完全独立。守护进程要管理这些进程,很多进程容易出现意外死了,要有效的管理,否则稳定性会很差。先前也说了有同行直接按进程名杀进程,怕不被误杀得重命名。另外有的工具有必要的话可以做任务池,如ffmpeg。先前做过采集网络上的视频,当网络不好的时候容易造成进程卡住。这个时候可以通过任务池去管理,把死的进程杀掉继续未完成的任务。

相关文章

多种图片生成,打包接口传递

前面介绍了ImageMagick这个工具,可以将pdf转成png。这里再结合先前工作的实际需求补充一点相关知识。原先入职的是一家摩托车金融公司,就是借款买摩托车。公司对接了一些资金方,有这么个需求,需...

野生程序猿的养成(一)

很多时候我们开发的时候,思维不能太定视,视野一定要广,很多时候需要变通着想问题解决问题。如果你有以下类似案例,那你也是野生程序猿或者离野生程序猿不远了。一、用截图代替图片生成。用前端技术做复杂的图,然...

今天又学习了一招半式:音频的剪辑

今天已多媒体同事给我准备音频素材,20秒有400多k。本来想转成base64的,这么大影响性能啊。于是我自己来研究音频剪辑,还真发现问题了。音频mp3里有张图片占用了空间,新建个音频,把音轨复制过来重...