Back-up_Bats_Daemond Process 对小部分bats的守护进程

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Windows.Media;
using static System.Console;namespace copybat_daemon_process
{class Program{static void Main(string[] args){#regionConsole.Title = "Robcopybat_Daemon_Process_Prcess";string startmode;judge_module: Write("Begin \\ Write [y \\ n]: ");startmode = Convert.ToString(ReadLine());if (startmode == "y"){revise_file();goto start_module;}else if(startmode == "n"){System.Diagnostics.Process.Start(@"E:\Ballow_OS\copy_tab_lib.txt");goto judge_module;}elsegoto judge_module;start_module:  do{Write("[$ Fast light $]: ");string aa = Convert.ToString(ReadLine());if (aa == "q"){WriteLine("-->k: shutdown process\n" +"-->add: add new process\n" +"-->ss: shut console window and shutdown all process\n" +"-->ls: show all latest process name\n" +"-->o: revise copy_tab_lib.txt\n" +"-->up: update process");}else if(aa == "o"){System.Diagnostics.Process.Start(@"E:\Ballow_OS\copy_tab_lib.txt");}else if(aa == "up"){revise_file();}else if (aa == "add"){string line3, line4, isoverwrite;Write("add process name: ");line3 = ReadLine();Write("add process bat path: ");line4 = ReadLine();overwrite_module: Write("this process can be overwirted copt_tab_lib.txt [ y / n ]: ");isoverwrite = Convert.ToString(ReadLine());if (isoverwrite != "y" && isoverwrite != "n")goto overwrite_module;function.createtask(line3, @line4, false, false);if (isoverwrite == "y"){var file = new FileStream(@"E:\Ballow_OS\copy_tab_lib.txt", FileMode.Append);var writer = new StreamWriter(file);WriteLine();writer.WriteLine(line3);writer.WriteLine(line4);writer.Close();file.Close();}}else if (aa == "ss"){function.killall();break;}else if (aa == "kall"){function.killall();}else if (aa == "k"){Write("the index of killed process is: ");int index = Convert.ToInt32(ReadLine());function.killprocess(index);}else if (aa == "ls"){function.showtask();}else;} while (true);WriteLine("Ending");#endregion}private static void revise_file(){var file = new System.IO.StreamReader(@"E:\Ballow_OS\copy_tab_lib.txt");string line1 = "";while ((line1 = file.ReadLine()) != null){string line2 = file.ReadLine();function.createtask(line1, @line2, false, false);}file.Close();}}public static class function{private static List<Process> processlist = new List<Process>();private static List<string> processnamelist = new List<string>();public static void killall(){if(processlist.Count() == 0 && processnamelist.Count() == 0)return;for(int i = 1; i <= processlist.Count(); ++i){processlist[i - 1].Kill();}processlist.Clear();processnamelist.Clear();}public static void showtask(){if (processlist.Count() == 0){WriteLine("process list is empty");}for(int i = 1; i <= processlist.Count(); ++i){WriteLine("[ " + i + " ] " + "----> " + processnamelist[i - 1]);}}public static void createtask(string filename, string path, bool showWindow, bool waitForExit){if(processnamelist.Count() == 0){addprocess(filename, path);return;}for(int i = 1; i <= processnamelist.Count(); ++i){if (processnamelist[i - 1] == filename)return;}addprocess(filename, path);}private static void addprocess(string filename, string path){Process p = new Process();ProcessStartInfo si = new ProcessStartInfo();processlist.Add(p);processnamelist.Add(filename);RunCmd(p, si, filename, path, false, false);}public static bool killprocess(int index){if(index > processlist.Count()){WriteLine("Num is error");return false;}WriteLine("[ " + processnamelist[index - 1] + " ]process have been killed.");processlist[index - 1].Kill();processlist.RemoveAt(index - 1);processnamelist.RemoveAt(index - 1);return true;}private static void RunCmd(Process p, ProcessStartInfo si, string filename, string path, bool showWindow, bool waitForExit){si.FileName = path;path = "cmd -c " + path;si.Arguments = path;si.UseShellExecute = false;si.CreateNoWindow = showWindow;si.RedirectStandardOutput = true;si.RedirectStandardError = true;p.StartInfo = si;p.Start();//WriteLine(filename + "is Runing");}}
}

对小部分bats的守护进程相关推荐

  1. 【Linux系统编程】守护进程、线程

    ------------->[Linux系统编程/网络编程](学习目录汇总) <-------------- 目录 1.守护进程 1.1 进程组 1.2 会话 1.3 setsid()函数 ...

  2. 小何讲进程: 编写Linux守护进程方法详解

    守护进程概述 守护进程,也就是通常所说的Daemon进程,是Linux中的后台服务进程. 它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些事件的发生. 守护进程常常在 ...

  3. php 一秒操作一次_php守护进程 加linux命令nohup实现任务每秒执行一次

    Unix中 nohup 命令功能就是不挂断地运行命令,同时 nohup 把程序的所有输出到放到当前目录 nohup.out 文件中,如果文件不可写,则放到 /nohup.out 文件中.那么有了这个命 ...

  4. Linux supervisor守护进程的安装和使用

    个人网站:http://xiaocaoshare.com/ supervisor守护进程的介绍 Supervisor(http://supervisord.org/)是用Python开发的一个clie ...

  5. Linux系统守护进程详解

    文中有不对或者有不清楚的地方,请大家告诉我,谢谢!   Linux系统守护进程详解 不要关闭下面这几个服务: acpid, haldaemon, messagebus, klogd, network, ...

  6. linux 守护进程管理 supervisor 简介 可用于docker容器内守护进程

    一.supervisor简介 Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启.它是通过fork/e ...

  7. linux守护进程原理及创建详解

    在linux或者unix操作系统中在系统的引导的时候会开启很多服务,这些服务就叫做守护进程.为了增加灵活性,root可以选择系统开启的模式,这些模式叫做运行级别,每一种运行级别以一定的方式配置系统. ...

  8. python守护进程进程池_Python3标准库:multiprocessing像线程一样管理进程

    Python Python开发 Python语言 Python3标准库:multiprocessing像线程一样管理进程 1. multiprocessing像线程一样管理进程 multiproces ...

  9. linux怎么监控守护进程,linux shell脚本守护进程监控svn服务

    最近搭建的svn服务不知道什么原因服务总是被关闭(如果你不知道怎么搭建svn可以参考linux下搭建svn版本控制软件),因此用shell脚本实现一个守护进程.用于监控svn服务是否启动,如果服务不在 ...

最新文章

  1. python linux编程与window编程_Python实现Windows和Linux之间互相传输文件(文件夹)的方法...
  2. sql去除重复语句(转)
  3. SAP CRM Fiori应用My Opportunity标题显示不正确的问题分析
  4. 顶级程序员的心得 Coders at Work (I)
  5. linux编译寻找包含的头文件,Linux编写内核模块编译时找不到头文件
  6. php排序算法面试题,PHP面试:尽可能多的说出你知道的排序算法
  7. html5新增graph,Qunee for HTML5 - 中文 : Graph组件介绍
  8. Android Lottie动画
  9. 中职学校计算机基础设施建设,以信息化推动中职学校计算机专业建设.doc
  10. 详解高级前端面试常问的EventLoop
  11. 二等分计算机打印机尺寸,241两等分打印纸尺寸 电脑打印纸,规格241mm等份是2等份,是多大的纸呀?...
  12. data[i] is underfined
  13. python unrar问题_python利用unrar实现rar文件解压缩
  14. php中switch语句的理解,php中switch语句的使用详解
  15. 基于keil5 的stm32F103C8T6的ST-LINK V2的仿真器使用
  16. 【Java】Java中的常用工具类(排名前 16)
  17. 绍兴14岁女孩被德云社录取,她究竟有什么来历呢?
  18. 64位操作系统和32位的区别介绍【详解】
  19. chart.js-折线图
  20. 基于c52万年历c语言,基于STC89C52单片机的可测温式电子万年历

热门文章

  1. bo JAVA是什么意思,大家来讨论下业务层(BO)该做什么事?该怎样做事?该怎么解决...
  2. 作业:计数器仿真实验
  3. 物理实验室改造前搬迁注意事项有哪些TENAISU
  4. 论文精读:基于深度学习的表面缺陷检测方法综述
  5. 计算机行业就业的发展前景怎么样?
  6. 【联邦学习+区块链】FLchain: Federated Learning via MEC-enabled Blockchain Network
  7. Fast-Planner代码阅读-1. Robust and Efficient Quadrotor Trajectory Generation for Fast Autonomous Flight
  8. 数学三大核心领域概述:代数
  9. python利用PyQt5和QTDesginer开发GUI应用(二)、股票查询工具
  10. lms算法的matlab实现,LMS算法的MATLAB实现