как перезагрузить несколько использующий компьютеры цикл удара из txt файла

/dev/pts/10является ведомым концом пары псевдотерминальных устройств . На другом конце находится программа, которая открывала главное устройство-клон /dev/ptmxи получала /dev/pts/10в виде пары (. Каждый раз, когда вы открываете /dev/ptmx, вы получаете другое подчиненное устройство ). Соединение между /dev/ptmxи /dev/pts/10представляет собой двунаправленную трубу с изгибом .

При открытии приложения эмулятора терминала:

  • он открывается /dev/ptmxи получает имя другого конца. Он настраивает другой конец и открывает его,
  • он разветвляется,
  • новый процесс открывает другой конец псевдотерминального устройства и подключает к нему свои stdin , stdout и stderr ,
  • Новый процесс запускает оболочку.

Оболочка ничего не делает для установки этих трех файловых дескрипторов, она наследует их от своего родительского процесса. Точно так же его дочерние элементы наследуют файловые дескрипторы оболочки.

Замечание:В системе Linux /dev/stdin, /dev/stdoutи /dev/stderrявляются реальными файлами, которые посредством серии символических ссылок указывают на /proc//0, /proc//1и /proc//2, которые, в свою очередь, укажите на реальное устройство ввода/вывода :в вашем случае /dev/pts/10.

Существование этих трех стандартных потоков гарантируется библиотекой C.

Отредактируйте :, чтобы ответить на ваш обновленный вопрос, давайте уточним некоторые моменты ответа:

  • все, что записывается в /proc/pts/*, считывается терминалом, который его создал и отображает, все, что считывается из /proc/pts/*, поступает с устройства ввода, подключенного к терминалу,
  • в Linux /dev/stdoutчасто является символической ссылкой на /proc/self/fd/1, а /dev/stdin— на /proc/self/fd/0. Виртуальная файловая система /procзаботится о том, чтобы показать каждому приложению /proc/selfкак символическую ссылку на /proc/, где — идентификатор процесса приложения.
  • символические ссылки в /proc//fdуказывают на файлы, конвейеры и другие материалы, открытые приложением или унаследованные от их родителя. Каждое приложение гарантированно имеет три файловых дескриптора, открытых:0для чтения ввода, 1для записи вывода, 2для записи ошибок. В вашем случае это /dev/pts/10.

Если вы не перенаправляете вывод в другой файл, каждая команда, запускаемая оболочкой, записывается в терминал. Исключением из этого правила является ситуация, когда группа процессов вашей команды отличается от группы процессов переднего плана терминала,то запись завершится ошибкой и команде будет отправлено SIGTTOU. Этим поведением можно управлять с помощью stty tostopи stty -tostop:

.

stty tostop
echo "/dev/stdout points to the terminal, but I won't print anything" &
stty -tostop
echo "You can see me" &

1
11.11.2014, 00:25
1 ответ
#!/usr/bin/env bash

for SERVER in `cat servers.lst`
do
 ssh -tttq -o StrictHostKeyChecking=no -o CheckHostIP=no -o ConnectTimeout=5  $SERVER "sudo su -c 'uname -n;uptime;reboot' "
done
1
27.01.2020, 23:28

Теги

Похожие вопросы