Linux service無法使用系統(tǒng)環(huán)境變量
詳細描述
之前在做一個mysql多實例安裝時,安裝成功,linux也能成功啟動;但是將support-files/mysqld_multi.server移動到/etc/init.d/目錄下并設置開機啟動(chkconfig xxx on)失??;
問題探索
發(fā)現(xiàn)了問題,開始解決,發(fā)現(xiàn)service xxx start 無法啟動mysql的多實例,但是mysqld_multi start就可以使用;然后經(jīng)過各種嘗試,發(fā)現(xiàn)在普通環(huán)境下可以打印出/etc/profile設置的mysql環(huán)境變量,但是在shell做成的service中無法打印該mysql環(huán)境變量;
我的/etc/frofile文件:
export PATH=/usr/local/mysql/bin:$PATH
執(zhí)行:可以看到是有設置的mysql環(huán)境變量的
[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
執(zhí)行service:結果可以看到是沒有mysql環(huán)境變量的
[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等環(huán)境。
service文件中環(huán)境變量文件的使用
測試準備
c++測試程序
LogTest.cpp內(nèi)容如下:
// 測試代碼 #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)境變量文件
環(huán)境變量文件LogTest放在/etc/sysconfig/目錄下。
# 環(huán)境變量文件,可根據(jù)需要新增 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無法使用系統(tǒng)環(huán)境變量問題如何解決的詳細內(nèi)容。更多信息請關注PHP中文網(wǎng)其他相關文章!

熱AI工具

Undress AI Tool
免費脫衣服圖片

Undresser.AI Undress
人工智能驅動的應用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機

Video Face Swap
使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的代碼編輯器

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

禪工作室 13.0.1
功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級代碼編輯軟件(SublimeText3)

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

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

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

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

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

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

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

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