2016-03-07 8 views
3

К сожалению, у меня нет команды suspend (busybox/ash). Но я могу использовать kill -STOP $$ для возврата из фоновой оболочки (sh &) в родительскую оболочку (и позже fg).
Но вместо того, чтобы печатать эту длинную убить-команда, которую я хотел бы написать скрипт (названный приостановить), который должен сделать это:Как приостановить фоновой оболочку со сценарием?

#!/busybox sh 
kill --STOP $$ 

Но это не сработало. Кажется, я открываю другую оболочку и приостанавливаю ее одновременно.

Итак, каков правильный сценарий приостановки и как его называть (exec?)?

+1

Отличная идея. Вы имеете в виду, что suspend-script - это 'kill -STOP $$', и я называю его './SBIN/suspend'? Я попробую. – deetee

+1

Это работает в принципе. Но я должен набрать '. suspend' (начиная с точки и пробела). Разве нет решения для типа просто 'suspend'? – deetee

+1

Извините за мои последние комментарии, вы печатаете быстрее, чем я. К сожалению, я использую золу, и я не знаю, поддерживает ли зола псевдонимы в .ashrc (?). Я попытаюсь, но в принципе я хотел бы сделать это без псевдонимов (просто набрав команду). – deetee

ответ

1

Подводя итог, что я написал в предыдущих комментариях:

Самый простой способ получить простую команду за то, что вы пытаетесь сделать, это сделать псевдоним в вашем ~/.profile согласно this website.

echo 'alias suspend=kill --STOP $$' >> ./~profile # Add alias to .profile 
source ./~profile # Let ash update its list of aliases 

Теперь вы можете использовать короткую команду suspend.

Это может быть трудно сделать с помощью скрипта, поскольку дочерний процесс не может легко (или вообще) изменить среду родителя.