Ответ зависит от того, какую оболочку вы используете. Многие оболочки имеют echo
как встроена команда означает , что он не порождает отдельный процесс , и , следовательно , не будет отображаться в процессе листинга. Однако, если вы введете команду /bin/echo
или, ./echo
или вы отключите встроенные команды с помощью этой enable -n echo
команды, оболочка не будет использовать свою встроенную команду и вместо этого будет использовать двоичную версию. Это будет отображаться в списке процессов.
Если вы используете двоичный файл, а не встроенную оболочку, команда echo будет отображаться столько времени, сколько потребуется для перемещения данных в буфер STDIN другого процесса. Этот буфер имеет конечный размер, поэтому, если в буфере больше данных, чем уместится, команде echo придется некоторое время зависать, пока другой процесс не сможет прочитать некоторые данные из буфера. В большинстве случаев (например, в двух приведенных выше примерах) этот период будет составлять микросекунды. Если вы вставляете дамп SQL размером 20 МБ в MySQL с помощью echo, это может занять больше времени. Независимо от того, насколько коротким является время, если вы используете двоичный файл вместо встроенной оболочки, и кто-то случайно выберет правильное время, он сможет увидеть процесс в списке процессов.
Вы можете избежать этого, поместив секретные данные в файл (с соответствующими разрешениями) и используя файл в качестве STDIN следующим образом:
mysql -u root -p < file_with_secret.sql