Skribent: aitor_czr Dato: Til: dng Emne: Re: [DNG] How to test the backend of simple-netaid
Hi KatolaZ,
On 19/3/19 11:13, KatolaZ wrote: > On Tue, Mar 19, 2019 at 11:00:59AM +0100, aitor_czr wrote:
>
> [cut]
>
>> I answer myself, referring to the use of pkill wpa_supplicant:
>>
>> #include <signal.h>
>>
>> int kill_wpa_supplicant(void)
>> {
>> pid_t wpa_pid;
>> FILE *fp;
>>
>> fp = (fopen("/var/run/wpa_supplicant.pid", "r"));
>> if (fp == NULL) {
>> printf("Couldn't read Wpasupplicant pid file, not trying to kill.");
>> return 0;
> aitor, please notice that the pid file for wpa_supplicant can be
> literally*anywhere*. At the moment, in Devuan Beowulf, it is stored
> in the folder/var/run/wpa_supplicant/. But this is just very
> unreliable, IMHO. Please also consider that `wpa_supplicant(8)` has an
> option "-P" that allows to specify the path to pidfile...
>
> My2Cents
>
> KatolaZ
Analogous to the following bash script, used in the "kill-all-dhcp" of
netcfg (but extended to all the dhcp clients):
#!/bin/sh
# Killall for dhcp clients.
for client in dhclient udhcpc pump dhcp6c; do
pid=$(pidof $client) || true
[ "$pid" ] || continue
echo $pid
if kill -0 $pid 2>/dev/null; then
kill -TERM $pid
sleep 1
# Still alive? Die!
if kill -0 $pid 2>/dev/null; then
kill -KILL $pid
fi
fi
done