呼叫Shell指令碼無法正常退出的問題處理

2021-06-29 09:49:18 字數 612 閱讀 1243

做一些伺服器部署的時候出現的一系列問題

使用sshpass執行指令碼時,無法退出

使用php system,exec,之類的的shell呼叫函式無法退出的問題

當執行的指令碼沒有後台任務時,不會有任何問題

一旦出現無限迴圈的後台程序則會卡住不動

比如test1.sh的內容如下

#!/bin/bash

while true

doecho "it's in loop"

sleep 1

done

test2.sh內容如果是

#!/bin/bash

test1.sh &

執行 ./test2.sh毫無問題,但是如果用 php的system執行,則會一直卡著(sshpass也是一樣)

原因在於test1.sh的輸出流被繫結到了執行程序,因此php跟sshpass之類的會認為程式沒有結束

處理方法是 重定向輸出流到檔案或者/dev/null即可搞定

#!/bin/bash

test1.sh > /dev/null &

shell指令碼無法連線highgo資料庫

目錄 環境症狀 問題原因 解決方案 環境系統平台 linux x86 64 red hat enterprise linux 6 版本 4.1.1 症狀客戶在root使用者下,執行shell指令碼不能連線highgo資料庫,報錯缺少lib.so檔案。檢視客戶root使用者下的.bash profil...

shell指令碼無法連線highgo資料庫

目錄 環境症狀 問題原因 解決方案 環境系統平台 linux x86 64 red hat enterprise linux 6 版本 4.1.1 症狀客戶在root使用者下,執行shell指令碼不能連線highgo資料庫,報錯缺少lib.so檔案。檢視客戶root使用者下的.bash profil...

python無法執行指令碼 無法執行python指令碼

根據指令 我是python新手 我執行 performance.py localhost 999 我得到這個錯誤 phoenix performance evaluation script 1.0 creating performance table.error could not find or ...