mirror of
https://github.com/Dannecron/netology-devops.git
synced 2025-12-25 15:22:37 +03:00
homework 3.2 add answers 12-14
This commit is contained in:
@@ -77,4 +77,34 @@ ls -la /tmp/wrong_dir 2>&1 1>&5 | less
|
|||||||
|
|
||||||
11. Узнайте, какую наиболее старшую версию набора инструкций SSE поддерживает ваш процессор с помощью `/proc/cpuinfo`
|
11. Узнайте, какую наиболее старшую версию набора инструкций SSE поддерживает ваш процессор с помощью `/proc/cpuinfo`
|
||||||
|
|
||||||
Выполним команду `cat /proc/cpuinfo | grep sse`. В выводе можно найти такие версии, как `sse`, `sse2`, `ssse3`, `sse4_1`, `sse4_2`.
|
Выполним команду `cat /proc/cpuinfo | grep sse`. В выводе можно найти такие версии, как `sse`, `sse2`, `ssse3`, `sse4_1`, `sse4_2`.
|
||||||
|
Таким образом, ответом на вопрос будет `sse4_2`.
|
||||||
|
|
||||||
|
12. Почему команда `ssh localhost 'tty'` внутри виртуальной машины выдаёт ошибку `not a tty`
|
||||||
|
|
||||||
|
Изначально, нужно понять, что происходит при выполнении исходной команды. Судя по мануалу команды `ssh`,
|
||||||
|
`localhost` является пунктом назначения, куда будет произведено подключение,
|
||||||
|
а `tty` - это команда, которая будет выполнена на удалённом сервере. Из того же мануала следует,
|
||||||
|
что при указании команды будет произведено выполнение команды, а не логин пользователя. То есть,
|
||||||
|
команда будет выполнена без выделения отдельной сессии для пользователя,
|
||||||
|
а значит команда `tty` в данном случае действительно не сможет найти запущенный экземпляр терминала.
|
||||||
|
|
||||||
|
Изменить поведение можно принудительно заставив `ssh` создать новую сессию, для этого нужно добавить ключ `-t`,
|
||||||
|
то есть выполнить команду `ssh -t localhost 'tty'`.
|
||||||
|
|
||||||
|
13. Необходимо переместить запущенный процесс из одной сессии в другую с использованием утилиты `reptyr`
|
||||||
|
|
||||||
|
На виртуальной машине утилита не установлена, поэтому установим её `sudo apt install reptyr`.
|
||||||
|
В качестве примера запустим утилиту `screen`, которая запустит новую сессию внутри себя.
|
||||||
|
В другом подключении через ssh к виртуальной машине запустим "долгий" процесс, например, `less .bash_history`.
|
||||||
|
Внутри сессии `screen` найдём PID процесса `less`, для этого выполним команду `lsof | grep less`.
|
||||||
|
Затем выполним команду `reptyr <PID>`.
|
||||||
|
|
||||||
|
К сожалению, полностью перенести процесс не получилось, есть какие-то странные ошибки по типу `Operation not permitted`
|
||||||
|
или "зависания" второго терминала, если выполнить команду от администратора.
|
||||||
|
|
||||||
|
14. Узнайте что делает команда `tee` и почему в отличие от `sudo echo` команда с `sudo tee` будет работать.
|
||||||
|
|
||||||
|
Команда `tee` читает стандартный поток ввода и пишет его в стандартный поток вывода и файлы.
|
||||||
|
В отличие от `echo` перенаправление идёт в рамках одного процесса, именно поэтому `sudo tee` будет работать,
|
||||||
|
так как процесс берёт стандартный поток ввода от текущего пользователя, затем начинает запись с повышенными привилегиями.
|
||||||
Reference in New Issue
Block a user