Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Bagaimana untuk menyelesaikan masalah bahawa perkhidmatan Linux tidak boleh menggunakan pembolehubah persekitaran sistem

Bagaimana untuk menyelesaikan masalah bahawa perkhidmatan Linux tidak boleh menggunakan pembolehubah persekitaran sistem

王林
王林ke hadapan
2023-05-16 19:28:261143semak imbas

    Perkhidmatan Linux tidak boleh menggunakan pembolehubah persekitaran sistem

    Penerangan terperinci

    Apabila melakukan pemasangan berbilang contoh mysql sebelum ini, pemasangan berjaya , linux Ia juga boleh dimulakan dengan jayanya; walau bagaimanapun, memindahkan support-files/mysqld_multi.server ke direktori /etc/init.d/ dan menetapkan permulaan (chkconfig xxx on) gagal; >

    Saya menemui masalah dan mula menyelesaikannya Saya mendapati bahawa perkhidmatan xxx mula tidak boleh memulakan beberapa contoh mysql, tetapi permulaan mysqld_multi boleh digunakan kemudian selepas pelbagai percubaan, saya mendapati bahawa pembolehubah persekitaran mysql ditetapkan oleh /. etc/profile boleh dicetak dalam persekitaran biasa, tetapi Pembolehubah persekitaran mysql tidak boleh dicetak dalam perkhidmatan yang dibuat oleh shell; Anda boleh melihat bahawa pembolehubah persekitaran mysql ditetapkan

    export PATH=/usr/local/mysql/bin:$PATH

    Kemudian kami mentakrifkan skrip sistem V

    [root@localhost init.d]# echo $PATH
    /usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

    Berikan kebenaran dan tetapkannya kepada perkhidmatan

    [root@localhost init.d]# vi /etc/init.d/mysqlmul
    #!/bin/bash
    
    #chkconfig: - 75 15
    #description: test

    Laksanakan perkhidmatan: Sebagai Hasilnya, anda boleh melihat bahawa tiada pembolehubah persekitaran mysql

    [root@localhost init.d]#chmod +x /etc/init.d/mysqlmul
    [root@localhost init.d]#chkconfig --add mysqlmul

    Penyelesaian

    1 Tambah eksport PATH=/usr/local/mysql/bin:$PATH

    Nota:

    Apabila meletakkan skrip shell ke dalam perkhidmatan, anda perlu menetapkan PATH dan persekitaran lain.

    Penggunaan fail pembolehubah persekitaran dalam fail perkhidmatan

    Persediaan ujianprogram ujian c++

    Kandungan LogTest.cpp adalah seperti berikut:

    [root@localhost init.d]# service mysqlmul start
    /sbin:/usr/sbin:/bin:/usr/bin
    // 测试代码
    
    #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;
    }
    Proses ujian

    1) Susun atur cara ujian c++ dan salin atur cara ujian ke direktori /usr/local/MyTest/.

    cp LogTest /usr/local/MyTest/

    2) Konfigurasi log

    Untuk konfigurasi berkaitan log, sila lihat https://blog. csdn.net/www_dong/article/details/128053496.

    3) Pemuatan fail perkhidmatan

    [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
    4) Lihat log program LogTest
    # 环境变量文件,可根据需要新增
    TESTSIZE=10

    Nota: Log mencetak 10, menunjukkan bahawa keseluruhan proses berjaya

    Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah bahawa perkhidmatan Linux tidak boleh menggunakan pembolehubah persekitaran sistem. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam