最近写了个工具,需要在后台静默执行,即使关闭了当前Linux命令行窗口,也不会有影响,我们来戏说。
1.写main.cpp, 生成可执行的二进制文件main (要注意权限,确保可执行)
2.写脚本run.sh (要注意权限,确保可执行)
#!/bin/bash
allfile=`ls test_*`
for onefile in $allfile
do
/usr/local/services/main /usr/local/services/$onefile &
done
3.执行脚本:
/usr/local/services/run.sh &
然后,即使你关闭当前窗口,后台的程序也不会停,你可以爽爽地去睡觉了。
这里我们要注意以下几点:
a.两个&都不能丢掉,否则就不能在后台静默执行
b.脚本中的那个循环,会循环开启多个进程,这些进程会并发执行,并不是说要等前一个进程执行完后,才执行下一个进程。你可以在for循环中加log试一下,这些log是立即循环输出的。这样就很好了,多进程在后台并发地静默执行,太爽了。
c.如果要杀死所有的后台静默执行的进程,执行killall main命令就可以了,爽。
d.test_*文件是怎么来的呢?请参考我介绍过的linux split命令:http://www.linuxdiyf.com/linux/27236.html