Я использую openconnect для подключения к своему VPN-серверу, я заметил одну странную вещь: если я использую kill
или pkill
команда, чтобы убить фоновый процесс openconnect, тогда вся сеть Linux будет непригодной для использования, мне нужно перезагрузить систему, чтобы она снова заработала, но использование Ctrl + C, убивающее openconnect переднего плана, не влияет на удобство использования сети, я хочу создайте сценарий для автоматического перезапуска (уничтожения и повторного подключения) openconnect в 12 часов каждый день, поэтому я хочу иметь возможность завершить его с помощью команды pkill.
Интересно, в чем разница между уничтожением его с помощью pkill и уничтожением с помощью Ctrl + C, и как правильно завершить процесс в сценарии оболочки.
Спасибо.
Журнал
root@vagrant:~# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=46 time=144 ms
^C
--- 8.8.8.8 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 138.338/141.269/144.200/2.931 ms
root@vagrant:~# ps
PID TTY TIME CMD
1397 pts/0 00:00:00 sudo
1398 pts/0 00:00:00 bash
1493 pts/0 00:00:00 openconnect
1495 pts/0 00:00:00 ps
root@vagrant:~# pkill openconnect
root@vagrant:~# ping 8.8.8.8
connect: Network is unreachable
Я понял это, я должен использовать $ kill -2 ID
чтобы убить процесс openconnect, -2
опция отправляет «Прерывание с клавиатуры», что помогло мне.