Ineu Опубликовано 16 марта, 2005 Жалоба Поделиться Опубликовано 16 марта, 2005 Доброе время суток, господа линуксоиды! Столкнулся тут с одной проблемкой... решить не могу - зашел в тупик. Кажется, все правильно, а получается совсем не то, что надо Задача: в скрипте перезапустить себя в фон Исходник: if [ -z ${IN} ]; then export IN=1 exec ${0} ${*} & fi Насколько я понимаю, оболочка выполняет эту команду как fork();exec();, в фон уходит не оригинальный процесс, а его копия-потомок, что мне совсем не подходит Как средствами оболочки отправить себя в фон? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
allez Опубликовано 17 марта, 2005 Жалоба Поделиться Опубликовано 17 марта, 2005 Можно попробовать так: if [ -z ${IN} ]; then export IN=1 kill -SIGTSTP $$ fiПравда, при этом скрипт, уйдя в фон, приостановит свое выполнение. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ineu Опубликовано 17 марта, 2005 Автор Жалоба Поделиться Опубликовано 17 марта, 2005 Спасибо. А вот еще вариант: if [ -z ${IN} ]; then export IN=1 exec ${0} ${*} & exit 0 fi Почему-то мне сразу не пришло в голову, что потомок является точной копией родителя, а значит последний можно завершить, тем самым освободив консоль. Достаточно было просто вспомнить Си Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.