[英]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(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.