隨筆 shell中併發實現 nohup

2021-10-06 11:41:23 字數 622 閱讀 7843

業務需要:不同使用者倒入資料,併發執行

受限:因為shell順序執行,如果某條命令不執行完成,後續迴圈語句在等待

具體實現:nohup在後台執行,跳過當前命令必須執行結束限制

指令碼示例:

#!/bin/bash

for i in {1…100}do{

/usr/bin/expect <總結:

錯誤.直接在shell中寫函式(實現業務邏輯)

執行報錯:nohup :failed to run commond 函式 ;no such file or directory .

根因分析:nohup 正確使用 no hang up 不結束通話

nohup commond [arg…] [&]

eg:nohup bash main.sh &

nohup ./main.sh &

nohup bash main.sh a b c &

nohup bash main.sh > test.log &

shell 中後台實現併發原理:

函式格式,寫成邏輯命令 以{邏輯}&.

{邏輯**

}&

使用Shell實現併發控制

思路就是建立乙個管道,往裡面寫入固定行數的資料,當程序進行操作之前先讀取一行,執行完操作寫入一行。即可實現可控程序數的併發操作。注意這個思路和訊號量的概念類似。usr bin bash ping02 thread 8 tmp fifofile tmp fifo mkfifo tmp fifofile...

Shell指令碼中的併發

主要記錄一下shell指令碼中的命令的併發和序列執行。預設的情況下,shell指令碼中的命令是序列執行的,必須等到前一條命令執行完後才執行接下來的命令,但是如果我有一大批的的命令需要執行,而且互相又沒有影響的情況下 有影響的話就比較複雜了 那麼就要使用命令的併發執行了。看下面的 bin bash f...

shell佇列實現執行緒併發控制

請看原文 需求 併發檢測1000臺web伺服器狀態 或者併發為1000臺web伺服器分發檔案等 如何用shell實現?方案一 這應該是大多數人都第一時間想到的方法吧 思路 乙個for迴圈1000次,順序執行1000次任務。bin bash start time date s 定義指令碼執行的開始時間...