Omitir os parênteses
Se você executar export
(sem parâmetros) após o comando, verá que SSLKEYLOGFILE
está definido como (/home/username)/sslkeylog.log
, que não é um caminho válido. Omitir os parênteses:
export SSLKEYLOGFILE=$HOME/sslkeylog.log
"Normalmente" aplicativos abertos ainda não verão a variável de ambiente
De acordo com o Manual de referência do Bash :
export [-fn] [-p] [name[=value]] Mark each name to be passed to child processes in the environment.[...]
... e da mesma forma, o manual do painel :
export name ... export -p The specified names are exported so that they will appear in the environment of subsequent commands.[...]
... a variável de ambiente exportada só é passada para comandos subseqüentes no mesmo processo ou processos filhos. Portanto, se você abrir um terminal e executar o comando export SSLKEYLOGFILE...
, apenas os aplicativos (processos) que são gerados a partir do mesmo terminal (ou, mais precisamente, o mesmo processo de shell dentro desse terminal) verão a variável de ambiente. Se você executar google-chrome(-stable)
desse terminal , ele verá a variável SSLKEYLOGFILE
e gravará no arquivo especificado.
Se você abrir o google chrome por meio de um aplicativo inicial (que suponho que você considere normal ), ele não será um processo filho do terminal e, portanto, não esteja ciente da variável SSLKEYLOGFILE
.
Além disso, esteja ciente de que, se o chrome já estiver em execução, a execução de google-chrome-stable
em um terminal abrirá uma nova janela no processo já em execução. Você pode visualizar a árvore de processos executando pstree
em um terminal.
Como isso não fazia parte da questão, não entrarei em detalhes aqui, mas definir variáveis de ambiente persistentes, seja em toda a sessão ou em todo o sistema, é explicado no Unidade da comunidade Ubuntu