前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NJS 触发系统命令运行

NJS 触发系统命令运行

原创
作者头像
黄希彤
修改2021-11-19 17:25:23
4650
修改2021-11-19 17:25:23
举报
文章被收录于专栏:黄希彤的专栏黄希彤的专栏

NginScript 暂时还没有直接调用操作系统命令的的能力,不过具有fs对象可以操作本地文件系统,需要触发本地命令的时候可以通过文件系统来传递消息,比如这样:

function execCommand(cmd){

var fs = require('fs');

var path;

if(cmd == "start") path='/dev/shm/start-command';

if(cmd == "stop") path='/dev/shm/stop-command';

var file = fs.writeFileSync(path, '');

}

需要操作的时候就在内存盘 /dev/shm 上写一个空文件(如果已经存在的话覆盖写),文件名是自己起的命令名称。

安装一个文件监控工具

yum install inotify-tools -y

代码语言:javascript
复制
#!/bin/bash
inotifywait -m -e open /dev/shm/ |
while read events;
do
    if [ "$events" == "/dev/shm/ OPEN start-command" ]; then 
        echo 'start command';
        do-something-to-start-service;
    fi
    if [ "$events" == "/dev/shm/ OPEN stop-command" ]; then
        echo 'stop command';
        do-something-to-stop-service;
    fi
done

没啥技术含量。这样通过文件系统来实现实现其实也并不漂亮,将就用着。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档