• 高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器RTMP推流服务器EasyDSS如何在Nodejs中调用bat或sh脚本?


    EasyDSS流媒体服务器软件,提供一站式的转码、点播、直播、时移回放服务,极大地简化了开发和集成的工作。点播功能主要包含:上传、转码、分发。直播功能,主要包含:直播、录像,直播支持RTMP输入,RTMP/HLS/HTTP-FLV的分发输出;录像支持自定义保存时长、检索及下载。

    Sh脚本介绍

    Sh脚本也就是我们常用的Shell脚本,与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了Linux/Unix下的命令。

    bat脚本

    bat脚本是windows上所用的脚本,我们经常使用的cmd一些命令就可以使用。也许有的朋友会问为什么不直接使用powershell脚本?因为古老的一些服务器上面没有安装powershell,此时就需要用到bat脚本。

    那么本片文章将会为大家介绍一下Nodejs中调用bat或sh脚本的方法。

    Nodejs中调用bat或sh脚本

    1. 安装shelljs

    npm install shelljs --save
    

    2. 其他的相关依赖

    npm install co --save
    

    3. 封装异步方法

    var shell = require('shelljs');
    exports.exec = function(command) {
        return Promise.resolve({
            then: function(onFulfill, onReject) {
                shell.exec(command, function(code, stdout, stderr) {
                    onFulfill({ code: code, out: stdout, error: stderr });
                })
            }
        });
     }
    

    4. 同步调用执行

    var ossshell = require('./shell.js');
    
    function demo(){
        return Promise.resolve({
        then: function(onFulfill, onReject) {
                co(function*() {
                        var command = "";
                        if (platform.startsWith("win")) {
                           //如果是windows
                            command = `call trans_process.bat`;
                        } else { 
                            //如果是linux
                            command = `sh ./trans_process.sh`;
                        }
                        yield ossshell.exec(command);
                        onFulfill();
                    }
                }).catch(function(e) {
                    onReject(new Error(e));
                })
            }
        });
    }
  • 相关阅读:
    Python subprocess- call、check_call、check_output
    Java Annotation认知(包括框架图、详细介绍、示例说明) (转)
    NVME SSD vs SATA SSD(转)
    scala中“_”的用法
    maven scope 'provided' 和 ‘compile’的区别
    scala tuple中的syntactic sugar
    Scala中的"null" 和“_”来初始化对象
    scala可变长度参数(转)
    Java中的Builder模式
    Scala中“=>”用法及含义
  • 原文地址:https://www.cnblogs.com/easydss/p/11989299.html
Copyright © 2020-2023  润新知