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, которой нужно было запустить длительный -работающий процесс, подобный демону.
Все коты работали, но тильда(~
)не обрабатывалась, как обычно в командной строке -. Внутренний cat
вернул содержимое файла, а внешний cat
уже был обработан для раскрытия тильды, подстановочных знаков, раскрытия переменных и т. д. Поэтому внешний кот искал файл по литералу . ] имя ~/.ssh/firstname.lastname
вместо предполагаемого /path/to/your/home/.ssh/firstname.lastname
.
Два варианта разрешения:
~/.ssh/firstname.lastname
, он будет содержать (, например)/home/you/.ssh/firstname.lastname
cat
в eval
таким образом, чтобы результирующая команда (после подстановки команд )была повторно обработана:eval cat $(cat path_to_key.txt)
. Обратите внимание, что это создает дополнительный уровень оценки, поэтому любые перенаправления или последующие команды внутри этого ключевого файла выполняются --вместе с желаемым расширением тильды, конечно.