Как я могу прочитать содержимое файла ключа ssh, используя путь, считанный из файла?

Is there any reliable way to identify a process other than the unreliable pid?

Надежный способ сделать это — запустить процесс самостоятельно и отловить, когда он умрет, например. вы получаете сигнал unix SIGCHILD.PID будет продолжать существовать (в состоянии, которое называется «зомби» ), пока вы не воспользуетесь уведомлением о смерти ребенка, например. waitpid().

В некоторых случаях вам потребуется делегировать это демону диспетчера процессов, например systemd. Например. тогда вы можете запросить его, используя systemctl status my-process.service. Это было бы полезно, если бы у вас была веб-страница PHP, которой нужно было запустить длительный -работающий процесс, подобный демону.

2
26.04.2019, 19:56
1 ответ

Все коты работали, но тильда(~)не обрабатывалась, как обычно в командной строке -. Внутренний catвернул содержимое файла, а внешний catуже был обработан для раскрытия тильды, подстановочных знаков, раскрытия переменных и т. д. Поэтому внешний кот искал файл по литералу . ] имя ~/.ssh/firstname.lastnameвместо предполагаемого /path/to/your/home/.ssh/firstname.lastname.

Два варианта разрешения:

  1. Включите абсолютный путь к файлу :вместо пути _к _key.txt, содержащему ~/.ssh/firstname.lastname, он будет содержать (, например)/home/you/.ssh/firstname.lastname
  2. Заключить внешний catв evalтаким образом, чтобы результирующая команда (после подстановки команд )была повторно обработана:eval cat $(cat path_to_key.txt). Обратите внимание, что это создает дополнительный уровень оценки, поэтому любые перенаправления или последующие команды внутри этого ключевого файла выполняются --вместе с желаемым расширением тильды, конечно.
2
27.01.2020, 22:08

Теги

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