El siguiente comando funciona perfectamente para iniciar DHCP:
# dhcpcd -p eth0
DHCP no se puede detener una vez que se inicia. El siguiente comando no funciona:
# dhcpcd -k eth0
Devuelve lo siguiente:
dhcpcd[4700]: sending signal 1 to pid 4086
dhcpcd[4700]: dhcpcd not running
dhcpcd[4700]: kill: Bad file number
¿Alguien podría ofrecer un consejo sobre cómo eliminar DHCP?
Una forma de obtener dinámicamente el PID del proceso dhcp y eliminarlo por completo sería ejecutar:
su
var=$(ps | grep dhcp)
kill $(echo -n $var | cut -d " " -f 0)
Específicamente:
ps
(que enumera los procesos activos), filtrada por grep
con la palabra clave dhcp , a la variable var
;kill
a terminar el valor contenido en el primer campo ( -f 0
) de la variable var
, diciéndole cut
que separe los campos con un espacio en blanco ( -d " "
). No por casualidad, el valor mencionado corresponde al PID del proceso dhcpcd .killall dhcpcd
sería una mejor opción.cut
, solo el primer PID es candidato para matar. Se le anima a que experimente con él usted mismo, si no cree en la exactitud de la respuesta.dhcpd
en uno y dhcpcd
en el otro, dhcpd
es probable que se inicie primero porque tiene una prioridad más alta durante el arranque, y su comando sería mata eso en su lugar. Además, si dhcpcd
tiene un PID alto, es muy probable que coincida con el grep dhcp
comando en sí, que ha terminado en el momento kill
en que se llama, por lo que no haría nada en este caso.Esto también se puede hacer con awk
. Los comandos serían;
su
kill -9 $(ps -e | grep dhcp | awk '{ print $1 }')
Detalles
su
para saltar al shell raíz, kill -9
forzar la eliminación ps -e
enumera todos los procesos en detalle, lo canalizamos a través grep dhcp
del cual solo genera cualquier cosa, desde ps -e
salida a dhcp, luego lo canalizamos a través de awk, la impresión $ 1 solo imprime el contenido del primer campo, que es la identificación del proceso de dhcp. Y matar matará el proceso que coincida con esa identificación de proceso.
Grimorio
hongo
Grimorio
var=$(ps | grep dhcp)
. Luego, en una nueva línea, hazkill $(echo -n $var | cut -d " " -f 0)
, y debería matar el proceso por completo.hongo
Señor del Fuego
su -c 'killall dhcpcd'
funciona?hongo