天天看点

如何让你的linux程序在后台静默执行?

       最近写了个工具, 需要在后台静默执行, 即使关闭了当前linux命令行窗口, 也不会有影响, 我们来戏说

如何让你的linux程序在后台静默执行?
如何让你的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命令

       有兴趣的朋友, 也可以看到我之前介绍过的nohup

继续阅读