이전에 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
에서 셸로 처리하세요. /etc/init.d/xxx에 방금 설정된 서비스 스크립트가 서비스에 배치되면 PATH 등의 환경을 설정해야 합니다.
서비스 파일 내 환경변수 파일 활용
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; }
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
테스트 과정
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!