
CentOS 서버에서 env 변수가 NODE_OPTIONS
잘못된 값으로 설정되었습니다. /etc/environment, /etc/profile과 같은 가능한 파일을 확인했지만 운이 없었습니다. 또한 /etc/에서 greping을 시도했지만 여전히 성공하지 못했습니다. 이것은 나를 화나게 한다.
나는 이것을 시도했습니다 : https://unix.stackexchange.com/a/154971/92712
출력에 그러한 변수가 없다는 사실에 놀랐습니다. 하지만 그것은
printenv NODE_OPTIONS
set | grep NODE_OPTIONS
echo $NODE_OPTIONS
(쉘은 bash입니다)
이 NODE_OPTIONS가 어떤 파일에서 나오는지 알 수 있는 방법이 있나요?
추가 정보:
$ node -v
node: invalid value for NODE_OPTIONS (unterminated string)
$ echo $NODE_OPTIONS
--max-old-space-size=5120"
$ cat /etc/environment
export NODE_OPTIONS="--max-old-space-size=5120"
고쳐 쓰다:
@ilkkachu 감사합니다
$ declare -p NODE_OPTIONS
declare -x NODE_OPTIONS="--max-old-space-size=5120\" "
업데이트 2: 추가 큰따옴표 env
도 출력에 나타납니다.
$ env
NODE_OPTIONS=--max-old-space-size=5120"
업데이트 3: 감사합니다 @Johan Myréen
$ od -c /etc/environment
0000000 \n e x p o r t N O D E _ O P T
0000020 I O N S = " - - m a x - o l d -
0000040 s p a c e - s i z e = 5 1 2 0 "
0000060 # i n c r e a s e t o 5 g
0000100 b \n \n
0000103
답변1
$ cat /etc/environment
export NODE_OPTIONS="--max-old-space-size=5120"
그래서 /etc/environment
조금 이상합니다. pam_env.so
, 로 구성되어 있습니다 .매뉴얼 페이지이는 다음을 포함해야 함을 의미하므로"별도의 라인에 있는 간단한 KEY=VAL 쌍"그리고 일부 버전의 매뉴얼 페이지에도 이 내용이 언급되어 있습니다."bash 호환성을 위해 내보내기 지시문을 지정할 수 있지만 무시됩니다."
어쨌든 쉘에서는 이를 읽지 않으며 모든 쉘 구문이 지원되는 것은 아닙니다. 매뉴얼 페이지에는 따옴표에 대한 언급이 없으며 백슬래시 이스케이프 또는 다른 변수 확장을 지원하지 않습니다. PATH=$PATH:/some/path
즉, 또는 FOOPATH=$HOME/foo
작동하지 않습니다.
#
그러나 이것이 전부는 아닙니다 . 최소한 내 데비안에서는 줄 중간에서도 기호를 주석 표시로 처리하는 것 같습니다 .값의 시작과 끝(있는 경우)에서 따옴표를 제거하지만 일치하는지 여부는 상관하지 않습니다..
예를 들어 왼쪽에 두 행이 있으면 오른쪽에 두 개의 값이 표시됩니다.
/etc/environment |
결과 변수 |
---|---|
TEST1="hash#sign" |
TEST1=hash |
TEST2="mixed quotes' |
TEST2=mixed quotes |
od
출력 에 따르면 /etc/environment
실제로 다음 줄을 포함합니다.
export NODE_OPTIONS="--max-old-space-size=5120" #increase to 5gb
해시 기호에서 잘리지만 닫는 따옴표 뒤에 공백이 있으므로 따옴표가 인식되거나 제거되지 않으며 값에 공백과 따옴표가 모두 표시됩니다.
"단순 키=값 쌍"에 대한 설명서의 내용을 따르려면 다음을 사용할 수 있습니다.
# increase to 5 GB
NODE_OPTIONS=--max-old-space-size=5120
그러나 위의 의견과 관찰을 바탕으로 export
다음과 같이 작동할 수도 있습니다.
# increase to 5 GB
export NODE_OPTIONS="--max-old-space-size=5120"
후행 공백을 정리할 때 주의하세요. 공백이 값에 포함되거나 다른 문제를 일으킬 수 있습니다.
관련된: