#shell #unix #csh
#оболочка #unix #csh
Вопрос:
Я запускаю несколько csh-скриптов параллельно (каждый скрипт принимает 2 аргумента), которые выполняют множество забавных вещей в фоновом режиме (детали не важны для моей проблемы). Пока я запускаю их как:
my_script arg1 arg2 amp;
my_script arg3 arg4 amp;
...
Это работает просто отлично, но я бы хотел, чтобы при каждом запуске скрипта перенаправлялся его стандартный вывод в файл журнала. Если я выполню следующую команду, она будет работать хорошо:
my_script arg1 arg2 >! somefile.log
Проблема в том, что мне нужно запустить по крайней мере 5 из этих скриптов параллельно (в фоновом режиме для каждого из них). Когда я пытаюсь выполнить следующую последовательность, задания отправляются, но сообщается как «Приостановлено (вывод tty)», а файл журнала не обновляется:
my_script arg1 arg2 >! somefile.log amp;
my_script arg3 arg4 >! somefile1.log amp;
my_script arg5 arg6 >! somefile2.log amp;
....
Есть идеи по этому вопросу. О … также я забыл упомянуть, что мне нужно использовать CSH, к сожалению, я не могу переключиться на bash или что-либо еще.
Большое спасибо!
Комментарии:
1. Вы пробовали запускать с
nohup
и стандартным перенаправлением вывода «> amp;»?2. Да, я попробовал оба варианта, результат все тот же. Спасибо!
Ответ №1:
Пожалуйста, попробуйте
nohup my_script arg1 arg2 < /dev/null >! somefile.log amp;
Вы также можете попробовать
stty -tostop
для управления режимом терминала
Комментарии:
1. @Birbal: Какой трюк (или оба) сработал у вас? Удачи всем.
2. Первый вариант сработал… Я не пробовал второй