목차
Linux 서비스는 시스템 환경 변수를 사용할 수 없습니다
자세한 설명
문제 탐색
1이 없음을 확인할 수 있습니다. 추가 내보내기 PATH=/usr/local/mysql/bin:$PATH
테스트 준비
c++ 테스트 프로그램
1) C++ 테스트 프로그램을 컴파일하고 테스트 프로그램을 /usr/local/MyTest/ 디렉터리에 복사합니다.
운영 및 유지보수 리눅스 운영 및 유지 관리 Linux 서비스에서 시스템 환경변수를 사용할 수 없는 문제를 해결하는 방법

Linux 서비스에서 시스템 환경변수를 사용할 수 없는 문제를 해결하는 방법

May 16, 2023 pm 07:28 PM
linux service

    Linux 서비스는 시스템 환경 변수를 사용할 수 없습니다

    자세한 설명

    이전에 mysql 다중 인스턴스 설치를 할 때 설치가 성공적으로 이루어졌고 Linux도 성공적으로 시작할 수 있었지만 support-files/mysqld_multi.server가 다음 위치로 이동되었습니다. /etc /init.d/ 디렉토리 및 시작 설정(chkconfig xxx on)에 실패했습니다.

    문제 탐색

    문제를 발견하고 해결하기 시작했으며 서비스 xxx start가 mysql의 여러 인스턴스를 시작할 수 없다는 것을 발견했습니다. 다양한 시도 끝에 /etc/profile에서 설정한 mysql 환경 변수는 일반 환경에서 출력할 수 있지만, 쉘에서 만든 서비스에서는 mysql 환경 변수를 출력할 수 없다는 사실을 발견했습니다. /etc/frofile 파일:

    export PATH=/usr/local/mysql/bin:$PATH
    로그인 후 복사

    실행: mysql 환경 변수 set

    [root@localhost init.d]# echo $PATH
    /usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    로그인 후 복사
    가 있는 것을 볼 수 있습니다

    그런 다음 시스템 V 스크립트를 정의합니다

    [root@localhost init.d]# vi /etc/init.d/mysqlmul
    #!/bin/bash
    
    #chkconfig: - 75 15
    #description: test
    로그인 후 복사

    권한을 부여하고 service

    [root@localhost init.d]#chmod +x /etc/init.d/mysqlmul
    [root@localhost init.d]#chkconfig --add mysqlmul
    로그인 후 복사

    로 설정합니다. 서비스 실행: 결과적으로 mysql 환경 변수

    [root@localhost init.d]# service mysqlmul start
    /sbin:/usr/sbin:/bin:/usr/bin
    로그인 후 복사

    Solution

    1이 없음을 확인할 수 있습니다. 추가 내보내기 PATH=/usr/local/mysql/bin:$PATH

    참고:

    에서 셸로 처리하세요. /etc/init.d/xxx에 방금 설정된 서비스 스크립트가 서비스에 배치되면 PATH 등의 환경을 설정해야 합니다.

    서비스 파일 내 환경변수 파일 활용

    테스트 준비

    c++ 테스트 프로그램

    LogTest.cpp 내용은 다음과 같습니다.

    // 测试代码
    
    #include <stdio.h>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, const char* argv[])
    {
        int size = 0;
        // 解析传入参数(argc和argv),代码略
        // ...
        
    	cout << size <<endl;
        
    	while(1);
    	return 0;
    }
    로그인 후 복사

    service 파일

    LogTest.service 파일

    [Unit]
    Description=LogTest
    After=network.target 
    
    [Service]
    Type=simple
    EnvironmentFile=-/etc/sysconfig/LogTest
    ExecStart=/usr/local/MyTest/LogTest -s ${TESTSIZE}
    ExecStop=/bin/kill -s QUIT $MAINPID
    StandardOutput=syslog
    StandardError=syslog
    SyslogIdentifier=LogTest
    
    [Install]
    WantedBy=multi-user.target
    로그인 후 복사

    환경 변수 파일

    환경 변수 파일 LogTest는 /etc/sysconfig/ 디렉터리에 있습니다.

    # 环境变量文件,可根据需要新增
    TESTSIZE=10
    로그인 후 복사

    테스트 과정

    1) C++ 테스트 프로그램을 컴파일하고 테스트 프로그램을 /usr/local/MyTest/ 디렉터리에 복사합니다.

    cp LogTest /usr/local/MyTest/

    2) 로그 구성

    로그 관련 구성은 https://blog.csdn.net/www_dong/article/details/128053496을 참고하세요.

    3) 서비스 파일 로드

    # 文件拷贝
    cp LogTest.service /usr/lib/systemd/system
    
    # 文件加载
    systemctl daemon-reload
    
    # 程序启动
    systemctl start LogTest
    
    # 查看进程是否启动成功
    ps -aux | grep LogTest
    로그인 후 복사

    4) LogTest 프로그램 로그 보기

    # 进入日志所在目录
    cd /var/log
    
    # 查看LogTest.log
    cat LogTest.log
    로그인 후 복사

    참고: 로그에는 10이 인쇄되어 전체 프로세스가 성공했음을 나타냅니다.

    위 내용은 Linux 서비스에서 시스템 환경변수를 사용할 수 없는 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

    핫 AI 도구

    Undresser.AI Undress

    Undresser.AI Undress

    사실적인 누드 사진을 만들기 위한 AI 기반 앱

    AI Clothes Remover

    AI Clothes Remover

    사진에서 옷을 제거하는 온라인 AI 도구입니다.

    Undress AI Tool

    Undress AI Tool

    무료로 이미지를 벗다

    Clothoff.io

    Clothoff.io

    AI 옷 제거제

    AI Hentai Generator

    AI Hentai Generator

    AI Hentai를 무료로 생성하십시오.

    인기 기사

    R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
    3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. 최고의 그래픽 설정
    3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
    3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
    WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
    3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

    뜨거운 도구

    메모장++7.3.1

    메모장++7.3.1

    사용하기 쉬운 무료 코드 편집기

    SublimeText3 중국어 버전

    SublimeText3 중국어 버전

    중국어 버전, 사용하기 매우 쉽습니다.

    스튜디오 13.0.1 보내기

    스튜디오 13.0.1 보내기

    강력한 PHP 통합 개발 환경

    드림위버 CS6

    드림위버 CS6

    시각적 웹 개발 도구

    SublimeText3 Mac 버전

    SublimeText3 Mac 버전

    신 수준의 코드 편집 소프트웨어(SublimeText3)

    Linux 터미널에서 Python 버전을 볼 때 발생하는 권한 문제를 해결하는 방법은 무엇입니까? Linux 터미널에서 Python 버전을 볼 때 발생하는 권한 문제를 해결하는 방법은 무엇입니까? Apr 01, 2025 pm 05:09 PM

    Linux 터미널에서 Python 버전을 보려고 할 때 Linux 터미널에서 Python 버전을 볼 때 권한 문제에 대한 솔루션 ... Python을 입력하십시오 ...

    Docker 환경에서 PECL을 사용하여 확장자를 설치할 때 오류가 발생하는 이유는 무엇입니까? 그것을 해결하는 방법? Docker 환경에서 PECL을 사용하여 확장자를 설치할 때 오류가 발생하는 이유는 무엇입니까? 그것을 해결하는 방법? Apr 01, 2025 pm 03:06 PM

    Docker 환경을 사용할 때 Docker 환경에 Extensions를 설치하기 위해 PECL을 사용하여 오류의 원인 및 솔루션. 종종 일부 두통이 발생합니다 ...

    램프 아키텍처에서 Node.js 또는 Python 서비스를 효율적으로 통합하는 방법은 무엇입니까? 램프 아키텍처에서 Node.js 또는 Python 서비스를 효율적으로 통합하는 방법은 무엇입니까? Apr 01, 2025 pm 02:48 PM

    많은 웹 사이트 개발자는 램프 아키텍처에서 Node.js 또는 Python 서비스를 통합하는 문제에 직면 해 있습니다. 기존 램프 (Linux Apache MySQL PHP) 아키텍처 웹 사이트 요구 사항 ...

    APSCHEDULER 타이밍 작업을 MACOS의 서비스로 구성하는 방법은 무엇입니까? APSCHEDULER 타이밍 작업을 MACOS의 서비스로 구성하는 방법은 무엇입니까? Apr 01, 2025 pm 06:09 PM

    Apscheduler 타이밍 작업을 MacOS 플랫폼의 서비스로 구성하십시오. Ngin과 유사한 APSCHEDULER 타이밍 작업을 서비스로 구성하려면 ...

    C 언어로 멀티 스레딩을 구현하는 4 가지 방법 C 언어로 멀티 스레딩을 구현하는 4 가지 방법 Apr 03, 2025 pm 03:00 PM

    언어의 멀티 스레딩은 프로그램 효율성을 크게 향상시킬 수 있습니다. C 언어에서 멀티 스레딩을 구현하는 4 가지 주요 방법이 있습니다. 독립 프로세스 생성 : 여러 독립적으로 실행되는 프로세스 생성, 각 프로세스에는 자체 메모리 공간이 있습니다. 의사-다일리트 레딩 : 동일한 메모리 공간을 공유하고 교대로 실행하는 프로세스에서 여러 실행 스트림을 만듭니다. 멀티 스레드 라이브러리 : PTHREADS와 같은 멀티 스레드 라이브러리를 사용하여 스레드를 만들고 관리하여 풍부한 스레드 작동 기능을 제공합니다. COROUTINE : 작업을 작은 하위 작업으로 나누고 차례로 실행하는 가벼운 다중 스레드 구현.

    Linux 시스템에서 Python 통역사를 삭제할 수 있습니까? Linux 시스템에서 Python 통역사를 삭제할 수 있습니까? Apr 02, 2025 am 07:00 AM

    Linux 시스템과 함께 제공되는 Python 통역사를 제거하는 문제와 관련하여 많은 Linux 배포판이 설치 될 때 Python 통역사를 사전 설치하고 패키지 관리자를 사용하지 않습니다 ...

    Web.xml을 열는 방법 Web.xml을 열는 방법 Apr 03, 2025 am 06:51 AM

    Web.xml 파일을 열려면 다음 방법을 사용할 수 있습니다. 텍스트 편집기 (예 : 메모장 또는 문자 메시지)를 사용하여 통합 개발 환경 (예 : Eclipse 또는 NetBeans)을 사용하여 명령을 편집하십시오 (Windows : Notepad Web.xml; Mac/Linux : Open -A Texted web.xml).

    See all articles