我想開始n腳本的線程,每個腳本都有自己的進程ID。如何產生一個腳本的n個線程,每個腳本都有自己的進程ID?
我目前通過cronjob
做到這一點,像這樣:
* * * * * php /path/to/script.php >> /log/script.log 2>&1
* * * * * php /path/to/script.php >> /log/script.log 2>&1
* * * * * php /path/to/script.php >> /log/script.log 2>&1
這三個線程都登錄到同一script.log
,其中對輸出其pid
。
如何在不從腳本複製/粘貼的情況下執行相同操作?
以下會產生不同的pid
(可從php
的getmypid()
訪問)嗎?或者他們都會共享相同的script-launcher.sh
pid?
#!/bin/bash
# Let's call this `script-launcher.sh`
# Launch 3 threads at once with `script-launcher.sh 3`
N=${1-0}
for i in {1..$N}
do
php /path/to/script.php >> /log/script.log 2>&1
done
所有正在運行的進程都有一個唯一的PID。 – pvg
我是否理解你說,使用上面的例子,'script-launcher.sh 100'會產生100個'script.php'進程,每個進程都有自己的'pid'? – Ryan
我認爲這可以幫助你http://stackoverflow.com/questions/19543139/bash-script-processing-commands-in-parallel你想爲你的腳本開始更多的並行過程嗎?當你開始一個過程時,他會自動採取一個pid。 – Laurentiu