中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux?service無法使用系統環境變量問題如何解決

發布時間:2023-04-07 15:40:52 來源:億速云 閱讀:177 作者:iii 欄目:開發技術

這篇“Linux service無法使用系統環境變量問題如何解決”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Linux service無法使用系統環境變量問題如何解決”文章吧。

    Linux service無法使用系統環境變量

    詳細描述

    之前在做一個mysql多實例安裝時,安裝成功,linux也能成功啟動;但是將support-files/mysqld_multi.server移動到/etc/init.d/目錄下并設置開機啟動(chkconfig xxx on)失敗;

    問題探索

    發現了問題,開始解決,發現service xxx start 無法啟動mysql的多實例,但是mysqld_multi start就可以使用;然后經過各種嘗試,發現在普通環境下可以打印出/etc/profile設置的mysql環境變量,但是在shell做成的service中無法打印該mysql環境變量;

    我的/etc/frofile文件:

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

    執行:可以看到是有設置的mysql環境變量的

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

    然后我們定義一個system 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

    執行service:結果可以看到是沒有mysql環境變量的

    [root@localhost init.d]# service mysqlmul start
    /sbin:/usr/sbin:/bin:/usr/bin

    解決辦法

    1、在/etc/init.d/xxx剛才設置的service中添加export PATH=/usr/local/mysql/bin:$PATH

    注意:

    當把一個shell腳本放入到service中時,需要設定好PATH等環境。

    service文件中環境變量文件的使用

    測試準備

    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)service文件加載

    # 文件拷貝
    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 service無法使用系統環境變量問題如何解決”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    松滋市| 通许县| 沛县| 恩平市| 合山市| 上高县| 宝鸡市| 获嘉县| 鄂托克旗| 桑日县| 杭锦旗| 崇阳县| 昌平区| 保康县| 田东县| 高陵县| 读书| 靖宇县| 通城县| 垫江县| 萨迦县| 林芝县| 南川市| 开阳县| 巫溪县| 汝州市| 普兰店市| 克什克腾旗| 岢岚县| 晋州市| 新晃| 康定县| 珲春市| 沭阳县| 沁水县| 盐源县| 和林格尔县| 丹巴县| 巴楚县| 永泰县| 巴塘县|