Немного поздно, я знаю, но следующее демонстрирует, что @Sima говорит, что p.send_signal(signal.SIGCONT)
запустит приостановленный процесс.
ОБНОВЛЕНИЕ: основываясь на комментариях, я понимаю, что вам нужно заставить script_1 (отправить сообщение) дождаться завершения script_2 (вход в систему), прежде чем продолжить.Процесс 1, приведенный ниже, представляет собой скрипт Python, который будет отправлять сообщение, а процесс 2 - это процесс входа в систему:
import subprocess
import signal
import time
print("Starting")
p = subprocess.Popen("""
for i in `seq 1 12`;
do
echo $i;
sleep 1;
done
""", shell=True)
# Your script_1 controlling script_2 here
print("Process 1: Sleeping")
time.sleep(3)
print("Process 2: Pausing")
p.send_signal(signal.SIGTSTP)
print("Process 1: Sleeping")
time.sleep(3)
print("Process 2: Starting (continue)")
p.send_signal(signal.SIGCONT)
# Your script_1 waiting for script_2 to complete in order to continue
print("Process 1: Waiting on 2 to finish")
time.sleep(3)
# Code from https://stackoverflow.com/q/36596354/3727050
while p.poll() is None:
# Process hasn't exited yet, let's wait some
time.sleep(0.5)
print("Process 1: still waiting...")
print("Process 1 got process 2 exit code: {}".format(p.returncode))
print("Here only Process 1 is running")
Вывод:
$ python ~/tmp/tests.py
Starting
Process 1: Sleeping
1
2
3
Process 2: Pausing
Process 1: Sleeping
Process 2: Starting (continue)
Process 1: Waiting on 2 to finish
4
5
6
7
Process 1: still waiting...
Process 1: still waiting...
8
Process 1: still waiting...
Process 1: still waiting...
9
Process 1: still waiting...
Process 1: still waiting...
10
Process 1: still waiting...
Process 1: still waiting...
11
Process 1: still waiting...
Process 1: still waiting...
12
Process 1: still waiting...
Process 1: still waiting...
Process 1: still waiting...
Process 1 got process 2 exit code: 0
Here only Process 1 is running
Обратите внимание, что из exit-Код сценария 2 вы должны быть в состоянии определить, если вход был успешным.Код возврата 0 - успех, все остальное - сбой