精华内容
下载资源
问答
  • 而我的状况是服务器自从设置了共享文件夹后,需要访问登陆的用户越来越多,进程也越来越多,一两天就300多条,甚至... 进程太多不可能手动删除,在cmd中输入命令taskkill /F /im LogonUI.exe 强制删除进程,这种办...

         这个进程是服务器提供的什么服务是需要别人输入系统账号密码进行登录的,导致这么多登陆进程

    而我的状况是服务器自从设置了共享文件夹后,需要访问登陆的用户越来越多 ,进程也越来越多,一两天就300多条,甚至会使得服务器登陆变慢 卡死,即使重启后也没办法持续长时间

         进程太多不可能手动删除,在cmd中输入命令taskkill /F /im LogonUI.exe 强制删除进程,这种办法治标不治本啊,谁有更好的解决方法

     

     

    展开全文
  • 哎,突然间,老毛病又烦了,想起原来一直有个编程的问题没有解决——禁止别人用任务管理器,结束自己的程序进程(.NET程序)。带着这个问题,我开始Google,开始baidu,又开始编程了。和原来的搜索结果一样,什么东西...

    闲来无事,英语又学的太痛苦。看到我妈妈电脑开起在,就坐上去看看新闻,听听音乐。哎,突然间,老毛病又烦了,想起原来一直有个编程的问题没有解决——禁止别人用任务管理器,结束自己的程序进程(.NET程序)。带着这个问题,我开始Google,开始baidu,又开始编程了。和原来的搜索结果一样,什么东西都是一筹莫展,得到的答案永远是:C#没有办法自己去禁止别人用任务管理器结束自己进程。不过功夫不负有心人。我还是找到一大堆的替代方法,可以让别人不结束自己进程的方法。

          

     

     

    总结方法有:

        

     

     

    1.      把任务管理器程序给别人删除了,不让别人打开(妈呀,这个我觉得最不可取了,有点杀鸡取卵的味道,没有任务管理器,我是无法忍受的。毕竟人家用户,购买了你产品,你总不可能把别人任务管理器给洗白了吧?)否决!

        

     

     

    2.      接下来这个比较温柔,通过C#内置的Process类,对任务管理器的进程进行扫描,如果检查到有taskmgr.exe的进程(任务管理器进程),就把这个进程结束了。(虽然没有第一个来的恶劣,但是,用户还是不能使用任务管理器)否决!

          

     

     

    3.      写两个程序进行双保护。这个想法是网上提的最多的思路,如果一个程序被结束了,另一个程序检测到这个程序不在了,就立即重新启动该程序,双双保护,互助互利(结果我尝试了一下,不可取,因为1,CPU使用率太高,一直在循环检测,计算机速度立即就下了。我妈妈这个机子,P4的配置,1G内存,也来不起了。网页也卡起了。2,我写了一个第三方程序,以最快速率去结束这个两个进程,如果这两个进程为了节约CPU的使用率,而把扫描间隔时间隔的太开的话,立刻被我的程序洗白。所以,理论上这种方法,肯定是会被洗白的)否决

         

     

     

    4.      技术含量比较高了,通过Windows的驱动机制,把自己给隐藏了(把自己变成驱动),然后隐藏到系统中运行,在任务管理器完全找不到,其实我多喜欢这种方式的,但是,这个程序一弄出来,瑞星,Google,Hotmail,360卫士,全部当成病毒查出来了,我当时眼流花都要流出来了。他们都太不给面子,Google,Hotmail直接把我的附件删除了。随便我压缩,分包压缩,都逃不过他们的法眼。所以,我清楚的意识到,这种程序弄出来,在客户机器上,肯定是无法长久生存的。毕竟一个堂堂正正的程序,干嘛要去隐藏呢?所以。该条方案否决!

          

     

     

    5.      用第三方的VC++程序,辅助C#程序达到不让别人禁止C#进程的方法。哎,弄了半天,这种方法,我认为最行之有效。毕竟不得不承认,要搞Windows系统级的程序设计,C++是当之无愧的龙头老大,C#只是一个做网站级应用的能手。不过,你发布一个程序给用户,用户看到那个任务管理器里面还有个其他程序在运作或者是看到你的安装包里面怎么还有其他程序名字,确实感觉太不专业,太不地道了。话又说回来,这种辅助程序一般都要收费。我下载的那个就要收费。所以,最后,这个方案也否决了!

           

     

     

    难道,C#真的就不能自己弄个什么名堂的东西出来,不被任务管理器结束吗?实际,我认为,C#是可以做到这一点的。原因有2个。1,C#是支持带*号这种指针的方式的。也就是说,C#可以使用指针。2,C#可以完全无障碍的调用Windows自己的API函数(虽然性能没有VC++开发的好),调用第三方开发的COM组件,甚至调用USB插口接口相关信息(曾今做U盘杀毒的时候,用到过,不过主要还是结合API完成的,一个未公开的API函数R开头的忘记了)。所以,为此,我抱着信心开始准备找第三方提供的动态链接库之类的东西,毕竟要自己写,C#还是有许多性能和调用方面的麻烦问题要考虑,毕竟不是毕业设计,所以,能简单就简单,只要克服以上提到的5种方法的不足。

          

     

     

    最后,功夫不负有心人,找了大半天,找到了一个叫Peter的牛人,写了一个通过VC++程序调用VC++动态链接库,实现的VC++程序不被任务管理器结束的源代码。幸亏源代码相当详尽(VC++动态链接库的源码,VC++应用程序源码),要不然,后面的活路,就没有办法做了。于是我开始,慢慢,慢慢走上辛苦的VC++代码分析上。你们可能要问我干什么?我可以很坦然的告诉你,虽然我VC++能力确实不强,但是我要把VC++的代码,移植到C#上。听起来,很不可思意,但是,我真的成功了。最后,为了报答我的学校——成都电子机械高等专科学校和成都信息工程学院。我把VC++应用程序调用代码,移植到.NET上,并且,为了调用方便,我做成了.NET可以识别的dll运行库。只要按以下方式调用运行即可。这个dll运行库可以保护自己进程,也可以通过设置保护其他进程,作为第三方动态链接库存在。(很幸运,虽然这个第三方动态链接库我还是很花了些时间,但是绝对不收费,免费放送,提供C#工程源码下载!如果大家有兴趣也可以一起讨论一下,我的邮件是Email:k.liuxu@gmail.com),至于那个牛人的设计思路,其实,就是用系统函数挂钩,挂接了所有的系统函数消息。没有直接分析任务管理器这些东西。不过,在CMD命令控制台中,无法接受消息,所以,用命令控制台,是可以结束进程的。不过,命令控制台,一般用户不会使用,可以直接把命令控制台删除,或者移植到程序内部调用,不准用户外部调用,就行了。至于其他更麻烦的东西,就有兴趣大家在慢慢聊吧。

         

     

     

    前面分析VC++代码是一个艰苦的历程,简直是挥泪分析啊,眼睛都看肿了,才把VC++应用程序部分移植出来。其实总结了一下,实际上还是因为自己学习不扎实,所以才看的恼火,对不起电子高专培养我的刘光会和杨勇老师,对不起信息工程学院的安俊秀和陈晓红老师。不过最后弄出来了,还是一件好事情吧,也充分说明了C#还是可以搞一些基于系统级的调用和编程的。也许在大鸟眼睛中,移植这种工作并不算什么,这种程序也许是小儿科,不过,对于,刚刚毕业的我来说,还是一种不小的挑战。

          

     

     

    由于时间有限,我只把前半部分的VC++应用程序端移植完成,在以后的时间中,等我把Dll部分抽象出来,我会做成.NET可以识别的dll发布出来。如果还有时间,我就再来说说,我怎么分析的吧。不过这个可能要说很久很久了,毕竟涵盖了5年我大学学习的所有基础知识,大到系统,小到函数指针,代理,枚举这些结构,内存存储空间等等。好了废话不多说了。现在主要看看怎么使用。

     

        首先,我们必须具备两个DLL文件,一个是我用.NET程序生成的KProtectProcess.dll文件,这个文件可以直接放到VS.NET开发环境中进行使用。还有一个是我还没有编译出来的NKCore.dll文件(其实我移植了一半,但是里面设计很多系统关键字,我在C#中还没有找到很好的解决方案,所以正在研究),这个文件是C++的运行库,实际上核心也是这个文件。

         

     

     


        1首先我们新建立一个工程。如下:

       

     

    2.按照如图,放置这些控件,以便我们操作

     

     

     

    3.添加引用.NET可以识别的KProtectProcess.dll动态链接库(VB.NET,J#.NET,VC++.NET都可以调用)右键项目,选择添加引用:

     

     

          

     

     

     

    4.找到KProtectProcess.dll这个文件并添加(注意保持,KProtectProcess.dll文件和NKCore.dll文件在同一目录中)

     

    5.点确定以后,你会看到工程中,多了一个程序集KProtectProcess.dll

             

     

     

    6.双击,按钮进入代码的编写,(其中保护自己,停止保护自己,保护其他进程,停止保护其他进程按钮的名字分别是:button1,button2,button3,button4),具体调用代码编写如下(代码调用,已经简化的相当简单了):自身保护调用SelfProtection(),自身释放调用UnLoadProtection(),其他进程保护,首先调用ProtectProcessID赋值,然后调用ProtectProcess进行保护,如果不赋值,我会抛出一个异常。

     

     

     

     

     

     

     

     

    7.       所有工作都准备完毕就可以调试了。其中以下演示怎么保护其他进程。比如我们现在打开Windows计算器这个程序,计算器这个程序的进程名是calc.exe,所以,我们就找他的进程号PID.1764

     

      

                    

     

       

     

             

     

     

         现在只需要在程序的进程号中输入,1764,然后点保护,最后,你看用任务管理器是不是不能结束calc这个程序了?很简单吧?

          

               

     

                     

                                

     结束语:

      

    (1).NET程序原代码下载地址为(大小47KB):TestClose.rar

        

    (2)两个动态连接库文件(大小14KB):Dll.rar

         

    (3).NET可识别的Dll我移植出来的.cs文件(7KB):KProcess.rar

          

    (4)VC++原始代码文件(大小10KB):vc.rar

           

     

     

       以上程序使用的是VisualStudio.NET 2010,(C#),在XP SP2上测试通过。如果有任何问题的话,请各位大侠多多指教。

    展开全文
  • 任务管理器的显示东西简单了,想看到一个进程的详细路径和启动参数都看不到   所以如果想看到详细信息,可以按照以下操作步骤 在开始----运行里输入cmd 打开  输入wmic 回车   输入process 回车  可以...

    任务管理器的显示东西太简单了,想看到一个进程的详细路径和启动参数都看不到



     

    所以如果想看到详细信息,可以按照以下操作步骤

    在开始----运行里输入cmd

    打开



     输入wmic 回车



     

    输入process 回车



     可以看到进程的信息了。

    这是一种方法,后续方法待续...

     

     

     

     

    展开全文
  • 任务管理器实际上是用了SysListView32控件,所以发点消息就可以解决(但是发点消息也没那么容易) ListView_GetItemText宏只是对当前进程有效,对远程进程是无效的,但是label之类的控件gettext对远程进程是有效的...

    网上的都不能用啊…全是未完成代码或者兼容性极差的代码。自己写呗。
    任务管理器实际上是用了SysListView32控件,所以发点消息就可以解决(但是发点消息也没那么容易)
    ListView_GetItemText宏只是对当前进程有效,对远程进程是无效的,但是label之类的控件gettext对远程进程是有效的,具体的可以看《Windows via C/C++》中文第5版第579面(只是记得有这个特性,但不记得书中多少面提到了。特地翻书找到了这一面,不容易)。

    成品:http://download.csdn.net/download/wwh1004/10244689

    比较关键的代码在下面

    /// <summary>
    /// 读取字符串,如果读取到非托管进程中,并且读取为LPSTR LPWSTTR BSTR等字符串类型,请自行转换为byte[]并使用<see cref="ReadBytes(uint, Pointer, byte[])"/><see cref="ReadBytes(uint, IntPtr, byte[])"/>
    /// </summary>
    /// <param name="processHandle">进程句柄</param>
    /// <param name="addr">地址</param>
    /// <param name="value"></param>
    /// <param name="bufferSize">缓存大小</param>
    /// <param name="doubleZero">是否以2个\0结尾(比如LPWSTR以2个字节\0结尾,而LPSTR以1个字节\0结尾)</param>
    /// <param name="encoding">编码</param>
    /// <returns></returns>
    internal static unsafe bool ReadStringInternal(IntPtr processHandle, IntPtr addr, out string value, int bufferSize, bool doubleZero, Encoding encoding)
    {
        if (encoding == null)
            throw new ArgumentNullException(nameof(encoding) + "不能为null");
        if (bufferSize <= 0)
            throw new ArgumentOutOfRangeException(nameof(bufferSize) + "小于等于0");
    
        byte[] buffer;
        uint numberOfBytesRead;
        List<byte> bufferList;
        bool lastByteIsZero;
    
        buffer = null;
        numberOfBytesRead = 0;
        bufferList = new List<byte>(bufferSize);
        lastByteIsZero = false;
        for (int i = 0; i < int.MaxValue; i++)
        {
            buffer = new byte[bufferSize];
            ReadProcessMemory(processHandle, addr + bufferSize * i, buffer, (uint)bufferSize, &numberOfBytesRead);
            //读取到缓存
            if ((int)numberOfBytesRead == bufferSize)
            {
                //读取完整
                for (int j = 0; j < bufferSize; j++)
                {
                    if (buffer[j] == 0)
                    {
                        //出现\0
                        if (doubleZero)
                        {
                            //如果双\0结尾
                            if (lastByteIsZero)
                                //上一个字节为\0
                                goto addLastRange;
                            if (j + 1 != bufferSize)
                            {
                                //不是缓存区最后一个字节
                                if (buffer[j + 1] == 0)
                                    //下一个字节也为\0
                                    goto addLastRange;
                            }
                            else
                                //缓存读完,标记上一个字节为\0
                                lastByteIsZero = true;
                        }
                        else
                            //不是2个\0结尾,直接跳出
                            goto addLastRange;
                    }
                    else
                    {
                        if (lastByteIsZero)
                            //上一个字节为\0,但当前字节不是
                            lastByteIsZero = false;
                    }
                }
            }
            else if (numberOfBytesRead == 0)
            {
                //读取失败
                value = null;
                return false;
            }
            else
            {
                //读取不完整
                for (int j = 0; j < (int)numberOfBytesRead; j++)
                {
                    if (buffer[j] == 0)
                    {
                        //出现\0
                        if (doubleZero)
                        {
                            //如果双\0结尾
                            if (lastByteIsZero)
                                //上一个字节为\0
                                goto addLastRange;
                            if (j + 1 != (int)numberOfBytesRead && buffer[j + 1] == 0)
                                //不是缓存区最后一个字节且下一个字节也为\0
                                goto addLastRange;
                        }
                        else
                            //不是2个\0结尾,直接跳出
                            goto addLastRange;
                    }
                    else
                    {
                        if (lastByteIsZero)
                            //上一个字节为\0,但当前字节不是
                            lastByteIsZero = false;
                    }
                }
            }
            bufferList.AddRange(buffer);
        };
        addLastRange:
        numberOfBytesRead -= doubleZero ? 2u : 1u;
        for (int i = 0; i < (int)numberOfBytesRead; i++)
            bufferList.Add(buffer[i]);
        if (encoding.CodePage == Encoding.Unicode.CodePage)
            buffer = bufferList.ToArray();
        else
            buffer = Encoding.Convert(encoding, Encoding.Unicode, bufferList.ToArray());
        fixed (void* p = &buffer[0])
            value = new string((char*)p);
        return true;
    }
    
    /// <summary>
    /// 在远程进程中读取结构
    /// </summary>
    /// <typeparam name="TStruct"></typeparam>
    /// <param name="hWnd">控件句柄</param>
    /// <param name="structure">读取出的结构体</param>
    /// <param name="callbackBeforeRead">读取前回调方法</param>
    /// <param name="callbackAfterRead">读取后回调方法</param>
    /// <returns></returns>
    public static unsafe bool ReadStructRemote<TStruct>(IntPtr hWnd, out TStruct structure, Func<IntPtr, IntPtr, bool> callbackBeforeRead, Func<IntPtr, IntPtr, bool> callbackAfterRead) where TStruct : IWin32ControlStruct
    {
        uint processId;
        IntPtr hProcess;
        bool is64;
        IntPtr remoteAddr;
    
        structure = default(TStruct);
        processId = Process.GetProcessIdByHWnd(hWnd);
        //获取控件所在进程ID
        hProcess = OpenProcessRWQuery(processId);
        //打开进程
        if (hProcess == IntPtr.Zero)
            return false;
        if (!Process.Is64ProcessInternal(hProcess, out is64))
            return false;
        if (is64 && !Environment.Is64BitProcess)
            throw new NotSupportedException("目标进程为64位但当前进程为32位");
        try
        {
            remoteAddr = VirtualAllocEx(hProcess, IntPtr.Zero, structure.Size, MEM_COMMIT, PAGE_READWRITE);
            //在控件所在进程分配内存,用于储存structure
            try
            {
                if (callbackBeforeRead != null)
                    if (!callbackBeforeRead(hProcess, remoteAddr))
                        return false;
                if (!ReadProcessMemory(hProcess, remoteAddr, structure.ToPointer(), structure.Size, null))
                    //从远程进程取回到当前进程失败
                    return false;
                if (callbackAfterRead != null)
                    if (!callbackAfterRead(hProcess, remoteAddr))
                        return false;
                return true;
            }
            finally
            {
                VirtualFreeEx(hProcess, remoteAddr, 0, MEM_RELEASE);
                //释放之前分配的内存
            }
        }
        finally
        {
            CloseHandle(hProcess);
            //关闭句柄
        }
    }
    
    /// <summary>
    /// 获取列表视图控件中Item的文本
    /// </summary>
    /// <param name="i">The index of the list-view item.</param>
    /// <param name="iSubItem">The index of the subitem. To retrieve the item text, set iSubItem to zero.</param>
    /// <returns></returns>
    public unsafe string GetItemText(int i, int iSubItem)
    {
        LVITEM item;
        IntPtr pStr;
        string text;
    
        text = null;
        pStr = IntPtr.Zero;
        item = new LVITEM
        {
            iSubItem = iSubItem,
            cchTextMax = 0x1000
        };
        Util.WriteStructRemote(Handle, ref item, (IntPtr hProcess, IntPtr addr) =>
        {
            pStr = VirtualAllocEx(hProcess, IntPtr.Zero, 0x1000, MEM_COMMIT, PAGE_READWRITE);
            //分配内存用于写入字符串
            if (pStr == IntPtr.Zero)
                return false;
            item.pszText = (char*)pStr;
            //设置缓存区地址
            return true;
        }, (IntPtr hProcess, IntPtr addr) =>
        {
            try
            {
                if (ListView_GetItemText(Handle, i, addr, 0x1000) == 0)
                    return false;
                return MemoryIO.ReadStringInternal(hProcess, (IntPtr)item.pszText, out text, 0x1000, true);
            }
            finally
            {
                VirtualFreeEx(hProcess, pStr, 0, MEM_RELEASE);
            }
        });
        return text;
    }

    别的实现起来就挺简单了

    using System;
    using System.Threading;
    using FastWin32.Control;
    using FastWin32.Diagnostics;
    
    namespace 隐藏进程Demo
    {
        static class Program
        {
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main()
            {
                RemoveItemLoop("chrome.exe", "conhost.exe", "RuntimeBroker.exe", "svchost.exe", "隐藏进程Demo.exe");
            }
    
            /// <summary>
            /// 移除循环
            /// </summary>
            /// <param name="name">进程名</param>
            private static void RemoveItemLoop(params string[] names)
            {
                if (names == null || names.Length == 0)
                    throw new ArgumentNullException();
    
                while (true)
                {
                    foreach (string name in names)
                        RemoveItem(name);
                    Thread.Sleep(100);
                }
            }
    
            /// <summary>
            /// 从任务管理器中移除进程
            /// </summary>
            /// <param name="name">进程名</param>
            /// <returns></returns>
            private static bool RemoveItem(string name)
            {
                IntPtr hWnd;
                SysListView32 listView;
                int count;
                string text;
    
                hWnd = GetListViewHandle();
                if (hWnd == IntPtr.Zero)
                    return false;
                listView = new SysListView32(hWnd);
                count = listView.GetItemCount();
                if (count == 0)
                    return false;
                name = name.ToUpperInvariant();
                for (int i = count - 1; i >= 0; i--)
                {
                    text = listView.GetItemText(i, 0);
                    if (text == null)
                        continue;
                    if (text.ToUpperInvariant() == name)
                        listView.DeleteItem(i);
                }
                return true;
            }
    
            /// <summary>
            /// 获取任务管理器列表控件句柄
            /// </summary>
            /// <returns></returns>
            private static IntPtr GetListViewHandle()
            {
                IntPtr hWnd;
    
                if (Environment.OSVersion.Version.Major == 6 && Environment.OSVersion.Version.Minor == 1)
                {
                    //Win7
                    hWnd = Window.FindWindow(null, "Windows 任务管理器");
                    if (hWnd == IntPtr.Zero)
                        return IntPtr.Zero;
                    hWnd = Window.FindWindow(hWnd, IntPtr.Zero, null, "Processes");
                    if (hWnd == IntPtr.Zero)
                        return IntPtr.Zero;
                    return Window.FindWindow(hWnd, IntPtr.Zero, "SysListView32", "进程");
                }
                else
                {
                    //Win8.1 Win10 别的系统未适配
                    hWnd = Window.FindWindow(null, "任务管理器");
                    if (hWnd == IntPtr.Zero)
                        return IntPtr.Zero;
                    hWnd = Window.FindWindow(hWnd, IntPtr.Zero, null, "TaskManagerMain");
                    if (hWnd == IntPtr.Zero)
                        return IntPtr.Zero;
                    hWnd = Window.FindWindow(hWnd, IntPtr.Zero, "DirectUIHWND", null);
                    if (hWnd == IntPtr.Zero)
                        return IntPtr.Zero;
                    Window.EnumChildWindows(hWnd, (IntPtr hChildWnd) =>
                    {
                        hWnd = Window.FindWindow(hChildWnd, IntPtr.Zero, "SysListView32", null);
                        if (hWnd == IntPtr.Zero)
                            return true;
                        else
                            return false;
                    });
                    return hWnd;
                }
            }
        }
    }
    

    去年写的放寒假才发出来,原因是作业太多,学习好累啊…

    展开全文
  • 线程、进程、多线程、多进程 和 多任务 小结

    千次阅读 多人点赞 2019-04-20 11:59:56
    3 多进程 4 多线程 5 线程与进程的关系 6 线程和进程的区别 7 进程的优缺点 7.1 进程的优点 7.2 进程的缺点 8 线程的优缺点 8.1 线程的优点 8.2 线程的缺点 9 多线程的优缺点 9.1 多线程的优点 9.2 多...
  • 有的时候会发现在任务管理器出了一些进程,但是用任务管理器的“结束进程”却结束不了它们,这个时候应该怎么办呢?一是使用另外的一些进程Kill工具,另外一种就是使用Windows自带的命令ntsd了。使用方法也很...
  • C语言多任务多进程,多线程

    千次阅读 2018-04-03 15:44:08
    Linux就是一种支持多任务的操作系统,它支持多进程、多线程等多任务处理和任务之间的多种通信机制。Linux下多任务机制的介绍多任务处理是指用户在同一时间内运行多个应用程序,每个应用程序被称做一个任务。Linux...
  • c#禁止任务管理器关闭任务

    千次阅读 2014-06-05 15:53:04
    禁止别人用任务管理器,结束自己的程序进程(.NET程序)。带着这个问题,我开始Google,开始baidu,又开始编程了。和原来的搜索结果一样,什么东西都是一筹莫展,得到的答案永远是:C#没有办法自己去禁止别人用任务...
  • 多任务原理,线程,进程

    千次阅读 2018-05-14 08:42:57
    现代操作系统(Windows,Mac OS X, Linux, Unix等)都支持”多任务” 什么叫多任务? 操作系统同时可以运行任务 什么是进程呢? 对于操作系统而言,一个任务就是一个进程, 进程是系统中程序执行和资源分配的基本...
  • 进程

    万次阅读 2021-05-25 14:29:00
    文章目录进程一.什么是多任务二、实现多任务的方式:示例1 一般...多进程文件拷贝9.封装进程对象10.进程间的通信 进程 一.什么是多任务 现代的操作系统(Windows,Mac OS X,Linux,UNIX等)都支持“多任务”。 什么叫做多
  • Linux就是一种支持多任务的操作系统,它支持多进程、多线程等多任务处理和任务之间的多种通信机制。 Linux下多任务机制的介绍 多任务处理是指用户在同一时间内运行多个应用程序,每个应用程序被称做一个任务。...
  • Supervisor监控多进程任务—Superlance

    千次阅读 2019-09-26 18:33:12
    Supervisor监控多进程任务 背景 服务器上部署了一批Supervisor管理任务,每个任务在启动后会各自启动多个进程,每个进程执行不同的脚本程序。由于脚本程序实在太多了,在Supervisor里面一个个配置会极其麻烦,所以...
  • Linux进程管理(第二版) --计划任务

    千次阅读 2014-09-20 10:29:33
    计划任务一、一次性计划任务at命令 #功能:安排一个/几个命令在指定时间(时刻)运行一次1、at的命令格式及参数  at [-f 文件名] 时间 at -d 或者 atrm 删除队列中的任务 【at生成的文件保存在/var/spool/at...
  • 进程管理

    千次阅读 多人点赞 2021-05-05 22:15:07
    进程管理
  • 任务管理器全接触

    千次阅读 2004-06-25 14:06:00
    任务管理器全接触 ( 作者:mikespook | 发布日期:2003-5-24 | 浏览次数:559 ) 关键字:任务管理器,进程,系统 Windows 2000可以说是相当稳定,崩溃是很罕见的事情。但是由于程序错误或兼容性问题,有时还是有...
  • Android实现任务管理器

    万次阅读 2011-11-03 18:31:00
    任务管理器可以实现的功能有: 1.查看当前系统下运行的所有的进程 2.可以查看每个进程进程号、版本号以及内存占用情况 3.杀死进程(可以杀死全部进程或者杀死指定的进程) 4.查看系统剩余内存 效果图:
  • 一起按下它们调出来的任务管理器,你又完全了解么?本文将详细讲解有关任务管理器的方方面面。  任务管理器能够干什么?  ◆ 任务管理器显示计算机相关资源使用的信息  ◆显示并管理计算机上所运行...
  • Linux 进程管理

    千次阅读 2015-04-21 12:23:47
     在Linux的内核的五大组成模块中,进程管理模块时非常重要的一部分,它虽然不像内存管理、虚拟文件系统等模块那样复杂,也不像进程间通信模块那样条理化,但作为五大内核模块之一,进程管理对我们理解内核的运作、...
  • Windows任务管理器

    千次阅读 2009-03-09 14:45:00
    一、开启任务管理器1.Ctrl+Alt+Del2.Ctrl+Shift+Esc3./Windows/System32/taskmgr.exe 二、任务管理器信息 1. 应用程序 这里显示了所有当前正在运行的应用程序,不过它只会显示当前已打开窗口的应用程序,而QQ、...
  • 我刚从WM阵营转过来,第一次使用安卓的时候,觉得很不习惯,因为我发觉进程管理软件根本就是个摆设,一些软件你关掉了,马上又会运行,当初用GO桌面自带进程管理,感受特别深刻,当时我用华为U8500,弄得自己都快要...
  • VMware安装linux进行开发,不运行VMWare的时候,仍然觉得系统卡,进入任务管理器查看到vmware-hostd.exe *32的进程使用在44~50之间的CPU使用率。于是找一下解决方案。 下面的教程的内容还真是不错:特记录在这里。...
  • Window进程管理

    千次阅读 2013-10-22 16:07:32
    可能大家对任务管理器里最熟悉的功能要数进程管理了,常常我们在怀疑中了病毒/木马的时候都会看看任务管理器里有没有什么特别的进程在运行,所以进程查看应该是一个非常重要的功能。我们除了需要获得进程的名称外...
  • 任务管理器测试内存泄露

    千次阅读 2009-12-07 12:37:00
    任务管理器测试内存泄露的方法很简单。 任务管理器和内存泄露紧密相关的只有两项,一个是内存使用率,一个是当前句柄数。 方法分别如下: 1,内存泄露的方法: 打开任务管理器,此时要减少电脑或虚拟机上其它...
  • Windows进程管理

    千次阅读 2018-05-30 22:59:16
    (2)通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解 Windows 进程的“一生”。 (3)通过阅读和分析实验程序,学习创建进程、观察进程、终止进程以及父子...
  • Linux进程、线程、任务调度之一 本篇文章主要记录以下学习内容: Linux进程生命周期(就绪、运行、睡眠、停止、僵尸) 僵尸的含义 停止状态与作业控制, cpulimit 内存泄漏的真实含义 task_struct以及task_...
  • golang 机定时任务管理系统

    千次阅读 2018-01-30 10:41:46
     ·cron+,秒级定时,使任务执行更加灵活;  ·任务列表文件路径可以自定义,建议使用版本控制系统;  ·内置日志和监控系统,方便各位同学任意扩展;  ·平滑重加载配置文件,一旦配置文件有变动,在不影响...
  • 要认识线程就要从操作系统的原理说起。  以前古老的DOS操作系统(V 6.22)是单任务的,还没有线程的概念,系统在每次只能做一件事情。比如你在copy东西的时候不能rename文件名。... 现在的操作系统都是多任务操作系
  • 任务管理器开发(一)

    千次阅读 2008-11-30 23:16:00
    前言: 这个项目是自己肤浅的看了些关于系统的文章后,决定实现一个任务管理器的加强版。现在后悔啊~发现这个任务量实在大了,差不多两个星期了(星期1到5都晚上时间和周末都用上了),才把进程管理部分完成了一...
  • 在Windows下,大家肯定有用过任务管理器,特别是我们想看看我们的CPU的使用率、内存还剩下多少,又或者某个程序出现了异常还关闭不了时,大家肯定会使用任务管理器来强制结束这个程序。那么在Linux下有没有这样的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 151,980
精华内容 60,792
关键字:

任务管理器太多进程