NodeJs Child_Process.exec не может найти команду - PullRequest
0 голосов
/ 01 октября 2019

Я использую mz / child_process в npm, чтобы получить информацию о таблице ARP, это работает в macOS, поэтому я использую виртуальную машину Ubuntu 18.04 LTS в моем MacBook, поэтому протестируйте команду.

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 в порядке, поэтому я не знаю, в чем проблема.

1 Ответ

0 голосов
/ 01 октября 2019

Если вы ищете команду NAME и получаете сообщение об ошибке:

bash: имя команды: команда не найдена

Это просто означает, что соответствующий пакетУтилиты, которые включают arp исполняемый файл не установлены, поэтому отсутствуют. Пакет net-tools может быть не установлен в вашей системе по умолчанию, поэтому вам необходимо установить его вручную.

Пакет также включает дополнительные утилиты, такие как arp, ifconfig, netstat, rarp, nameif and route.

, возможно, ваша оболочка /bin/sh, но пакет net-tools помещает свою инициализацию в ~/.bashrc и ожидает /bin/bash.

Вам нужно создать сценарии инициализации arp для запуска команд из неинтерактивной оболочки bash.

...