2016-01-24 108 views
0

我试图在后台运行airodump后台运行的进程。我写了下面的脚本,多数民众赞成从/etc/rc.local称为:在在启动不同的行为,然后手动启动

#!/bin/bash 

/usr/local/sbin/airmon-ng check kill >> /tmp/airmon-kill 2>&1 
sleep 2 
/usr/local/sbin/airmon-ng start wlan0 > /tmp/airmon-start 2>&1 
sleep 2 
/usr/local/sbin/airodump-ng wlan0mon --manufacturer --uptime --wps --output-format csv --write-interval 5 --write log > /tmp/airmon-dump 2>&1& 

当我运行这些命令作为根从终端他们工作得很好。当我从rc.local运行它们,我得到所有种类的问题..

首先击杀脚本..这一个似乎很好地工作,因为输出是:

Killing these processes: 

    PID Name 
2294 dhcpcd 

下一页启动脚本...这就是在那里我得到的是,当我在终端上自己运行它我没有得到一个错误:

PHY Interface Driver  Chipset 

phy0 mon.wlan0 rt2800usb Ralink Technology, Corp. RT5370 
phy0 wlan0  rt2800usb Ralink Technology, Corp. RT5370 

Error setting channel: command failed: Device or resource busy (-16) 
Error -16 likely means your card was set back to station mode by something. 
Removing non-monitor mon.wlan0 interface... 

WARNING: unable to start monitor mode, please run "airmon-ng check kill" 

任何想法,为什么行为是如此不同?两者都以root身份运行(我检查过),并且都从bash运行。为什么不同的行为?

+0

这是什么Linux发行版? – Will

+0

Raspian(wheezy) –

回答

0

而不是把它放在rc.local,这对我来说可能会在联网实际开始之前运行,编辑/etc/network/interfaces。里面的定义wlan0(或任何你的无线接口被命名),添加post-up命令:

iface wlan0 inet dhcp 
    ... 
    post-up /path/to/your/bash/script.sh 

这将运行脚本后wlan0接口其实来自网上。

相关问题