Как скопировать CTRL + C в сценарии оболочки? - PullRequest
2 голосов
/ 10 июня 2010

Я запускаю скрипт, который выполняет команду, которая длится слишком долго, поэтому я хочу прервать ее.Любая помощь?Я много пытался искать, и мне указали на команду kill.Хотя я не могу заставить его работать.Кстати, я использую Mac OS X. Спасибо!

Ответы [ 3 ]

2 голосов
/ 10 июня 2010

Если у вас есть PID процесса, отправьте ему сигнал SIGINT:

kill -SIGINT PID

Если у вас нет PID, вы можете попробовать pkill или killall, но они несколькоменее безопасно;PID - единственный способ однозначно идентифицировать процесс.Сразу после запуска другого процесса PID должен быть в $ !, так что вы можете сохранить его тогда

process-that-takes-a-long-time &
pid=$!
# other stuff
kill -SIGINT $pid
0 голосов
/ 15 марта 2013

Для репликации Linux Ctrl + C на терминале в Mac OS X используйте ctrl + C !Это та же самая комбинация нажатий клавиш, сработавшая для меня (первые шаги на Mac)

edit: я не читал, что скрипт работает в фоновом режиме.

0 голосов
/ 11 июня 2010

тайм-аут 10 your_command

...