首页 > 解决方案 > NodeJs Child_Process.exec 找不到命令

问题描述

我在 npm 中使用 mz/child_process 来获取有关 ARP 表的信息,这适用于 macOS,所以我在我的 MacBook 中使用 Ubuntu 18.04 LTS 虚拟机,所以测试命令。

var cp = require('mz/child_process')
   cp.exec('arp -a').then(function (stdout) {
   console.log(stdout)
})

我不得不手动安装arp

sudo apt-get install net-tools

但是当我cp.exec('arp -a')在 Ubuntu 中这样做时,我得到:

错误:/bin/sh:1:arp:未找到

路径没问题,在控制台中我可以arp -a毫无问题地运行,并且在哪里也没问题arp,所以我不知道是什么问题。

标签: node.jsbashubuntu-18.04child-processarp

解决方案


如果您正在查找 NAME 命令并收到错误:

bash:命令名称:找不到命令

这仅意味着arp未安装包含可执行文件的相关软件包 net-tools,因此丢失。默认情况下,该软件包net-tools可能未安装在您的系统上,因此您需要手动安装它。

该软件包还包括其他实用程序,例如arp, ifconfig, netstat, rarp, nameif and route.

可能是您的 shell 是/bin/sh,但 net-tools 包将其初始化放入~/.bashrc,并期望/bin/bash.

您需要获取arp初始化脚本以从非交互式 bash shell 运行命令。


推荐阅读