簡體   English   中英

通過bash在linux中生成一個完全獨立的進程

[英]spawn an entirely separate process in linux via bash

我需要一個腳本執行(bash或perl或php,任何會做)另一個命令然后退出,而另一個命令仍然運行並自行退出。 我可以通過命令安排,但是如果有一個更簡單的方法,我很好奇。

#!/bin/sh

your_cmd &

echo "started your_cmd, now exiting!"

perl和php存在類似的結構,但在sh / bash中,很容易在后台運行另一個命令並繼續。

編輯

非常好的通用流程操作源是/etc/init.d下的所有啟動腳本。 他們做各種巧妙的技巧,如跟蹤pid,執行基本的啟動/停止/重啟命令等。

要在后台運行命令,可以在命令后附加“&”。

如果您需要程序超過登錄會話,則可以使用nohup

看到類似的stackoverflow討論: 如何在后台運行命令...

運行命令並讓它在注銷時繼續運行的常用方法是使用nohup(1) 當shell退出時, nohup阻止給定命令接收HUP信號。 您還需要使用&符號(&)命令后綴在后台運行。

$ nohup some_command arg1 arg2 &

&

#!/usr/bin/bash
    # command1.sh: execute command2.sh and exit
    command2.sh &

我不完全確定這是否是您正在尋找的,但是您可以通過附加&符號作為命令的最后一個字符來對shell中執行的進程進行后台處理。

所以,如果你有腳本,a.sh

和a.sh需要產生一個單獨的進程,比如說執行腳本b.sh,你會:

b.sh &

只要你提到Perl:

fork || exec "ls";

......其中“ls”是什么。 重復您需要觸發的任意數量的命令。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM