如何让你的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





  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在 Android 后台静默截屏需要使用系统权限,因此需要在 AndroidManifest.xml 文件中添加权限声明: ```xml <uses-permission android:name="android.permission.READ_FRAME_BUFFER"/> ``` 然后可以使用以下代码进行截屏: ```java // 获取屏幕宽高 DisplayMetrics metrics = new DisplayMetrics(); WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE); windowManager.getDefaultDisplay().getMetrics(metrics); int width = metrics.widthPixels; int height = metrics.heightPixels; // 获取屏幕截图 Bitmap screenshot = null; try { screenshot = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(screenshot); Method method = Class.forName("android.view.SurfaceControl").getDeclaredMethod("screenshot", int.class, int.class); method.setAccessible(true); Object[] args = new Object[]{width, height}; method.invoke(null, args); Bitmap bitmap = (Bitmap) args[0]; canvas.drawBitmap(bitmap, 0, 0, null); } catch (Exception e) { e.printStackTrace(); } // 保存截图到文件 FileOutputStream fos = null; try { fos = new FileOutputStream(new File("/sdcard/screenshot.png")); screenshot.compress(Bitmap.CompressFormat.PNG, 100, fos); fos.flush(); } catch (Exception e) { e.printStackTrace(); } finally { if (fos != null) { try { fos.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 需要注意的是,这种方式只能在拥有系统权限的情况下使用,普通应用程序无法使用该方法进行截屏。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值