вам нужно определить pid родительского процесса и убить его
эта команда поможет вам определить родительский процесс вашего питона
ps fax -o ppid,pid,args
или
ps fax
или
pstree -p
f — полезный флаг для отображения связи между процессами при использовании ps
Чтобы предоставить услугу через TCP, некоторая программа должна вызвать listen()
, чтобы получить слушающий сокет , и та же программа или связанная с ней должна вызвать accept()
, чтобы принять отдельный входящие TCP-соединения как дополнительные подключенные сокеты . В этом отношении демон сервера OpenSSH работает в двух основных режимах.
-i
. Он выполняет listen()
, а затем в цикле повторно вызывает accept()
и fork()
, отключая дочерние процессы для каждого входящего соединения. -i
. Он ожидает, что что-то еще вызовет listen()
, accept()
и fork()
и выполнит его с подключенным сокетом как уже -открытый файловый дескриптор. Последний режим представляет собой nowait
стиль TCP-сервера под старым inetd
суперсервером, стиль Accept=yes
модуля сокета TCP в systemd и стиль сервера, который работает с UCSPI Дэниела Дж. Бернштейна -ПТС.
Прежний режим, к сожалению, не соответствует стилю wait
TCP-сервера в inetd
и стилю Accept=no
TCP-сервера в systemd. OpenSSH не использует протокол LISTEN_FDS
и не подтверждает уже открытые файловые дескрипторы -для прослушивания сокетов.Кроме того, прискорбно то, что некоторые люди поощряют этот режим использования, и поэтому, вероятно, именно так OpenSSH настроен для работы в вашей системе.
Потому что вам нужен второй режим.
Вы заключаете ssh -i
внутрь чего-то еще, что просматривает информацию об удаленном конце соединения и делает что-то, основываясь на том, что находит до этого exec()
ing ssh -i
. (UCSPI -TCP делает это очень просто, поскольку информация об удаленном конце помещается в переменные среды. )Затем вы вызываете оболочку вместо прямого вызова ssh -i
.
Детали выполнения этого действия зависят от вас, потому что они зависят от того, о чем вы нам не сказали, например от того, какую систему управления службами вы используете. Это может варьироваться от перетаскивания -во фрагменте с другим ExecStart
в сервисной единице systemd через пересмотренный файл конфигурации xinetd
до замены программы ./service
в сервисном пакете nosh.
Альтернативный подход, который будет работать с не--i
режимом вызова, но который не обобщается за пределы определенных опций одной конкретной программы, предоставляющей одну конкретную службу (, в отличие от вышеописанного подхода ), заключается в следующем: используйте механизм Match
в файле sshd_config
. Это не может ничего сделать, кроме установки подмножества параметров OpenSSH, включая уровень журнала, и, конечно, не применяется даже к другому программному обеспечению сервера SSH, не говоря уже о других типах служб.
Будьте благоразумны в своей обертке. Собственно SSH-соединение не запущено и не работает во время его выполнения; вы должны не(в целях безопасности )читать какие-либо данные из сетевого соединения и не записывать в него; и единственное, что нужно сделать, это проверить адреса/порты по спискам и, следовательно, каким-то образом настроить параметры сеанса -.
ucspi-socket-rules-check
. нош набор инструментов. Программное обеспечение.