Linux service無(wú)法使用系統(tǒng)環(huán)境變數(shù)
詳細(xì)描述
之前在做一個(gè)mysql多實(shí)例安裝時(shí),安裝成功,linux也能成功啟動(dòng);但是將support-files/mysqld_multi.server移到/etc/init.d/目錄下並設(shè)定開(kāi)機(jī)啟動(dòng)(chkconfig xxx on)失?。?/p>
#問(wèn)題探索
#發(fā)現(xiàn)了問(wèn)題,開(kāi)始解決,發(fā)現(xiàn)service xxx start 無(wú)法啟動(dòng)mysql的多實(shí)例,但是mysqld_multi start就可以使用;然後經(jīng)過(guò)各種嘗試,發(fā)現(xiàn)在普通環(huán)境下可以打印出/etc/profile設(shè)定的mysql環(huán)境變量,但是在shell做成的service中無(wú)法列印該mysql環(huán)境變數(shù);
我的/etc/frofile檔案:
export PATH=/usr/local/mysql/bin:$PATH
執(zhí)行:可以看到是有設(shè)定的mysql環(huán)境變數(shù)的
[root@localhost init.d]# echo $PATH /usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
然後我們定義一個(gè)system V的腳本
[root@localhost init.d]# vi /etc/init.d/mysqlmul #!/bin/bash #chkconfig: - 75 15 #description: test
賦予權(quán)限並設(shè)定為service
[root@localhost init.d]#chmod +x /etc/init.d/mysqlmul [root@localhost init.d]#chkconfig --add mysqlmul
執(zhí)行service:結(jié)果可以看到是沒(méi)有mysql環(huán)境變數(shù)的
[root@localhost init.d]# service mysqlmul start /sbin:/usr/sbin:/bin:/usr/bin
解決辦法
1、在/etc/init.d/xxx剛才設(shè)定的service中加入export PATH=/usr/local/mysql/bin:$PATH
#註:
當(dāng)把一個(gè)shell腳本放入service時(shí),需要設(shè)定好PATH等環(huán)境。
service檔案中環(huán)境變數(shù)檔案的使用
測(cè)試準(zhǔn)備
c 測(cè)試程式
LogTest.cpp內(nèi)容如下:
// 測(cè)試代碼 #include <stdio.h> #include <iostream> using namespace std; int main(int argc, const char* argv[]) { int size = 0; // 解析傳入?yún)?shù)(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
#環(huán)境變數(shù)檔案
環(huán)境變數(shù)檔案LogTest放在/etc/sysconfig /目錄下。
# 環(huán)境變量文件,可根據(jù)需要新增 TESTSIZE=10
測(cè)試流程
1)編譯c 測(cè)試程序,並將測(cè)試程序拷貝到/usr/local/MyTest/目錄下。
cp LogTest /usr/local/MyTest/
#2)日誌配置
關(guān)於日誌相關(guān)配置,可查看https://blog. csdn.net/www_dong/article/details/128053496。
3)service檔案載入
# 文件拷貝 cp LogTest.service /usr/lib/systemd/system # 文件加載 systemctl daemon-reload # 程序啟動(dòng) systemctl start LogTest # 查看進(jìn)程是否啟動(dòng)成功 ps -aux | grep LogTest
4)查看LogTest程式日誌
# 進(jìn)入日志所在目錄 cd /var/log # 查看LogTest.log cat LogTest.log
說(shuō)明: 日誌列印出10,說(shuō)明整個(gè)流程成功
以上是Linux?service無(wú)法使用系統(tǒng)環(huán)境變數(shù)問(wèn)題如何解決的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門(mén)文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6
視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)

熱門(mén)話(huà)題

在CentOS上集成Postman應(yīng)用可以通過(guò)多種方法來(lái)實(shí)現(xiàn),以下是詳細(xì)的步驟和建議:通過(guò)下載安裝包安裝Postman下載Postman的Linux版本安裝包:訪問(wèn)Postman官方網(wǎng)站,選擇適用於Linux的版本進(jìn)行下載。解壓安裝包:使用以下命令將安裝包解壓到指定目錄,例如/opt:sudotar-xzfpostman-linux-x64-xx.xx.xx.tar.gz-C/opt請(qǐng)注意將“postman-linux-x64-xx.xx.xx.tar.gz”替換為您實(shí)際下載的文件名。創(chuàng)建符號(hào)

Java與其他編程語(yǔ)言的主要區(qū)別在於其“一次編寫(xiě),到處運(yùn)行”的跨平臺(tái)特性。 1.Java的語(yǔ)法接近C ,但去掉了容易出錯(cuò)的指針操作,適合大型企業(yè)應(yīng)用。 2.與Python相比,Java在性能和大規(guī)模數(shù)據(jù)處理上更具優(yōu)勢(shì)。 Java的跨平臺(tái)優(yōu)勢(shì)源於Java虛擬機(jī)(JVM),它能在不同平臺(tái)上運(yùn)行相同的字節(jié)碼,簡(jiǎn)化開(kāi)發(fā)和部署,但需注意避免使用平臺(tái)特定API以保持跨平臺(tái)性。

在PyCharm中設(shè)置解釋器的位置可以通過(guò)以下步驟實(shí)現(xiàn):1.打開(kāi)PyCharm,點(diǎn)擊“File”菜單,選擇“Settings”或“Preferences”。 2.找到並點(diǎn)擊“Project:[你的項(xiàng)目名]”,然後選擇“PythonInterpreter”。 3.點(diǎn)擊“AddInterpreter”,選擇“SystemInterpreter”,瀏覽到Python安裝目錄,選中Python可執(zhí)行文件,點(diǎn)擊“OK”。設(shè)置解釋器時(shí)需注意路徑正確性、版本兼容性和虛擬環(huán)境的使用,以確保項(xiàng)目順利運(yùn)行。

在VSCode中手動(dòng)安裝插件包的步驟是:1.下載插件的.vsix文件;2.打開(kāi)VSCode並按Ctrl Shift P(Windows/Linux)或Cmd Shift P(Mac)調(diào)出命令面板;3.輸入並選擇Extensions:InstallfromVSIX...,然後選擇.vsix文件並安裝。手動(dòng)安裝插件提供了一種靈活的安裝方式,特別是在網(wǎng)絡(luò)受限或插件市場(chǎng)不可用時(shí),但需要注意文件安全和可能的依賴(lài)問(wèn)題。

【常見(jiàn)目錄說(shuō)明】目錄/bin存放二進(jìn)制可執(zhí)行文件(ls,cat,mkdir等),常用命令一般都在這裡。 /etc存放系統(tǒng)管理和配置文件/home存放所有用戶(hù)文件的根目錄,是用戶(hù)主目錄的基點(diǎn),比如用戶(hù)user的主目錄就是/home/user,可以用~user表示/usr用於存放系統(tǒng)應(yīng)用程序,比較重要的目錄/usr/local?本地系統(tǒng)管理員軟件安裝目錄(安裝系統(tǒng)級(jí)的應(yīng)用)。這是最龐大的目錄,要用到的應(yīng)用程序和文件幾乎都在這個(gè)目錄。 /usr/x11r6?存放x?window的目錄/usr/bin?眾多

了解Nginx的配置文件路徑和初始設(shè)置非常重要,因?yàn)樗莾?yōu)化和管理Web服務(wù)器的第一步。 1)配置文件路徑通常是/etc/nginx/nginx.conf,使用nginx-t命令可以查找並測(cè)試語(yǔ)法。 2)初始設(shè)置包括全局設(shè)置(如user、worker_processes)和HTTP設(shè)置(如include、log_format),這些設(shè)置允許根據(jù)需求進(jìn)行定制和擴(kuò)展,錯(cuò)誤配置可能導(dǎo)致性能問(wèn)題和安全漏洞。

MySQL的安裝和配置可以通過(guò)以下步驟完成:1.從官方網(wǎng)站下載適合操作系統(tǒng)的安裝包。 2.運(yùn)行安裝程序,選擇“開(kāi)發(fā)者默認(rèn)”選項(xiàng)並設(shè)置root用戶(hù)密碼。 3.安裝後配置環(huán)境變量,確保MySQL的bin目錄在PATH中。 4.創(chuàng)建用戶(hù)時(shí)遵循最小權(quán)限原則並設(shè)置強(qiáng)密碼。 5.優(yōu)化性能時(shí)調(diào)整innodb_buffer_pool_size和max_connections參數(shù)。 6.定期備份數(shù)據(jù)庫(kù)並優(yōu)化查詢(xún)語(yǔ)句以提高性能。

Informix和MySQL均為廣受青睞的關(guān)係型數(shù)據(jù)庫(kù)管理系統(tǒng),它們?cè)贚inux環(huán)境下均表現(xiàn)優(yōu)異並得到廣泛應(yīng)用。以下是對(duì)兩者在Linux平臺(tái)上的對(duì)比分析:安裝與配置Informix:在Linux上部署Informix需要下載對(duì)應(yīng)的安裝文件,隨後依據(jù)官方文檔指引完成安裝及配置流程。 MySQL:MySQL的安裝過(guò)程較為簡(jiǎn)便,可通過(guò)系統(tǒng)的包管理工具(例如apt或yum)輕鬆實(shí)現(xiàn)安裝,並且網(wǎng)絡(luò)上有大量的教程和社區(qū)支持可供參考。性能表現(xiàn)Informix:Informix以卓越的性能和
