Tag: linux

有没有办法找出哪些环境variables是需要/使用的可执行文件?

我有一个C ++程序,它将以root身份运行某些特定的命令。 之所以需要,是因为在Node.js下运行的另一个程序需要执行诸如设置系统时间,设置时区等需要root权限才能完成的事情。 在使用setuid命令之后,我正在使用C ++中的函数execve以root特权进行系统调用。 我特别selectexecve命令,因为我想隔离环境,所以我不创build一个环境variables的漏洞。 setuid(0); execve(acExeName, pArgsForExec2, pcEnv); 我想要做的是准确找出pcEnv,这是我的程序需要执行的程序的环境variables列表。 例如,如果我想运行time-admin这个工具,就好像我是从控制台运行它一样,我怎样才能找出它需要的环境variables。 我知道我可以使用命令printenv打印环境variables,但这给了我所有的人。 我很确定我不需要它们,并希望尽可能小。 我知道我可以全部使用它们,然后慢慢评论每一个,看看它是否继续工作,但我真的宁愿不去那么远。 任何人都有一个聪明的方法来找出一个程序使用什么样的环境variables? 我应该添加我在Ubuntu 12.04 LTS安装上做这个。 谢谢你的帮助。

在错误在亚马逊服务器上执行bash,bash是在正确的path

我正在使用Gith在亚马逊服务器上构build一个webhook服务器来自动部署。 当我更新我的存储库时,gith服务器可以接收更新,然后我想执行bash。 bash文件位于/home/ubuntu/node/githook/hook.sh,console.log(__ console.log(__dirname+'/hook.sh');的path上console.log(__dirname+'/hook.sh'); 输出正确的path,但是当使用execFile执行path时,它给出了一个错误 错误{ [Error: spawn EACCES] code: 'EACCES', errno: 'EACCES', syscall: 'spawn' } 上面的代码,但不知道为什么执行代码给了我这样的错误。 var gith = require('gith').create( 8080 ); var execFile = require('child_process').execFile; gith({ repo: 'heroku/node-js-sample' }).on( 'all', function( payload ) { if( payload.branch === 'master' ) { //console.log('all',payload ); console.log(__dirname+'/hook.sh'); execFile(__dirname+'/hook.sh', function(error, stdout, stderr) { // Log success in some […]

运行在VPS(linux)上的NodeJS应用程序在我的笔记本电脑进入睡眠状态时崩溃

截至昨天,我绝对是VPS和Linux的新手,我遇到了一个问题。 过程如下: 我SSH到OSXterminal的我的VPS框。 VPS运行CentOS 6是值得的。 我导航到正确的文件夹,并运行node app.js来在NodeJS / ExpressJS启动我的应用程序。 应用程序启动,并通过networking在我的VPS的IP地址+分配的端口号码很容易访问。 如果我把我的笔记本电脑睡觉,应用程序崩溃,不能再通过networking访问。 再一次,对Linux新手我不知道如何解决这个问题。 这是有道理的,因为正在运行/采取节点应用程序日志的terminal不再响应,但我想要的是: a)为了能够远程启动应用程序,只需…运行…永远,直到我手动停止它b)为了能够SSH回到我的服务器间歇性地检查日志,无论是通过我的手机手机或笔记本电脑。 这两种情况中的任何一种可能吗? 很显然,我通过terminal启动应用程序的协议(正如我通常在本地运行一样)不是正确的方法,但是我无法find资源告诉我该怎么做! 编辑:我实际上使用Node Supervisor运行应用程序,这有助于保持它运行时,事情崩溃,不知道如果这影响的情况。

使用选项“a”的Node.js fs.open生成EACCES错误

我正在尝试在POST请求上使用node.js的fs模块创buildxml文件。 filePath = path.normalize(path.join(profilesDirPath, name + xmlExt)); fs.exists(filePath, function(exists) { if (exists) { callback({ code: h.httpStatus.CONFLICT, resp: 'audio profile group with such name exists' }); return; } fs.open(filePath, 'a', function(error) { if (error) { callback({ code: h.httpStatus.INTERNAL_SERVER_ERROR, resp: error }); return; } callback(null); }); }); 这会导致错误: { "errno": 3, "code": "EACCES", "path": "/mount/fs/folder/newGroup.xml" } 节点进程运行在Linux和文件夹,我尝试创build这样的文件在同一台机器上。 […]

节点pty.js产生一个进程本身产生subprocess,并且当节点被杀时subprocess不会死

使用Ubuntu 13.10并运行节点v0.10.0。 我正在使用pty.js v0.2.4来生成一个程序(需要在交互式环境中运行)。 该程序是用C语言编写的,并自行分发一个subprocess。 我写了一个C程序(我称之为“forktest”)的一个非常简化的版本,它具有产生这个问题的最低要求,并包含以下内容: #include <unistd.h> #include <sys/types.h> #include <errno.h> #include <stdio.h> #include <sys/wait.h> #include <stdlib.h> int main(void) { pid_t childPID; childPID = fork(); if(childPID >= 0) { if(childPID == 0) { signal(SIGHUP, SIG_IGN); while(1) { printf("Child Process\n"); fflush(stdout); usleep(500000); } } else { printf("Parent process\n"); fflush(stdout); getchar(); } } else { printf("Fork […]

如何在linux专用服务器上运行简单的node.js Hello World程序

我对node.js编程颇为陌生。 我正在使用Linux专用服务器。 我已经在我的服务器(linux)中安装了node.js。 我正在使用follwing php程序来运行linux命令,所以我可以通过这些linux命令运行node.js程序 test.php的: exec('node test.js &', $a1,$a2); print_r($a1); echo $a2; 运行这个程序后,显示如下o / p: Array ( ) 0 但是不能返回$ a1variables的任何值,它应该显示“Hello World” test.js: var http = require("http"); http.createServer(function(request, response) { response.writeHead(200, {"Content-Type": "text/plain"}); response.write("Hello World"); response.end(); }).listen(8888); 我也试过端口3000和8000。

有没有可能在linux上执行dotnet exe与node.jssubprocess?

我有一个EXE文件,是用dotnet创build的。 我有一个rhc服务器,在那里我想运行这个EXE,并捕捉它的oputput(与subprocess)。 但我有一个folowing错误: 不能执行二进制文件 我明白,这是不能在Linux上执行,但是有没有解决scheme来解决这个问题,而不重写exe​​,或更改操作系统? 有没有节点包,有什么可以解决这个? 非常感谢您的回答!

从服务器上提供node.js webapps的正确文件夹是什么?

作为一个参考,比方说一个开发人员用ngnix服务器build立一个vanilla php webapp。 将Web文件托pipe在VPS的/ srv / www目录中是有意义的。 这个/ srv / www的所有者和组是nginx。 当用nodejs运行这个webapp时,什么是正确的目录来托pipewebapp? 所述目录的正确文件夹权限是什么? 当然,请记住安全性非常重要。 在这种情况下,操作系统是Centos 6.5。

捕获node.js中的tshark stdout输出

我试图从节点运行tshark并使用下面的代码检索stdout输出 var spawn = require('child_process').spawn, ts = spawn('tshark', ['-i wlan0 -I -R "wlan.fc.type == 0 && wlan.fc.subtype == 4" -e wlan.sa'] ); ts.stdout.on('data', function (data) { console.log('stdout: ' + data); }); ts.stderr.on('data', function (data) { console.log('stderr: ' + data); }); ts.on('exit', function (code) { console.log('child process exited with code ' + code); }); 但是我得到一个错误 stderr:在wlan0上捕获-I […]

如何正确启动节点服务器,以便apn将工作

当我通过node server.js从命令行运行我的服务器时,它的运行方式不同(特别是推送通知的工作方式),而不是当我用一个暴发户脚本启动它时。 我应该如何修改我的新贵脚本来解决这个问题? 下面是一个示例服务器,其中,在命令行中,新手和新手都失败了 var apn = require('apn'); var options = { passphrase:'certpassphrase' }; var err = null; var apnConnection = new apn.Connection(options); apnConnection.on('error', function(error){ console.log("apscallback", 1, error); }); apnConnection.on('transmitted', function(notification){ console.log("apscallback", 2); console.log(notification); }); apnConnection.on('timeout', function(){ console.log("apscallback", 3); }); apnConnection.on('connected', function(){ console.log("apscallback", 4); }); apnConnection.on('disconnected', function(){ console.log("apscallback", 5); }); apnConnection.on('socketError', function(error){ console.log("apscallback", 6, error); […]