精华内容
下载资源
问答
  • 修改Java程序进程名

    2015-07-05 19:57:00
     当同一个服务器上启动多个tomcat后,我们会在任务管理器中看见多个java.exe,当我们需要对某个tomcat进行监控时,却无法区分出该tomcat的进程,那么如何修改进程名呢?  可以使用端口号来区分不同的tomcat进程,...

    1、修改tomcat进程名字:

      当同一个服务器上启动多个tomcat后,我们会在任务管理器中看见多个java.exe,当我们需要对某个tomcat进行监控时,却无法区分出该tomcat的进程,那么如何修改进程名呢?
      可以使用端口号来区分不同的tomcat进程,使用netstat -nao | find "xxxx",xxxx是端口号,就可以找到所对应的进程。下面的方法可以直接修改tomcat的进程名为指定的名字,更便于辨认。
     
        打开tomcat_home\bin\setclasspath.bat文件,找到set _RUNJAVA="%JRE_HOME%\bin\java"这一行。将该行注释掉(即改为 rem set _RUNJAVA="%JRE_HOME%\bin\java"),然后在该行下面添加如下两行并进行保存:
           copy "%JAVA_HOME%\bin\java.exe" "%JAVA_HOME%\bin\omp.exe"
           set _RUNJAVA="%JAVA_HOME%\bin\omp"
          注意:omp为你所想看到的进程名字(即在任务管理器中的映像名称)
          重启tomcat后在在任务管理器中看见的进程名就不再是java.exe,而是omp.exe了。
    2、修改java进程名字:
        当我们来使用java.exe或者javaw.exe来启动java应用时,进程中的名称就是java.exe或者javaw.exe。
        使用exe4j等工具制作的exe将不是默认的名称,或者按照如下的方法来修改java进程名字。
     
           在编写好的bat脚本中开始加入下面一句:
           copy "%JAVA_HOME%\bin\java.exe" "%JAVA_HOME%\bin\omp.exe"
           如:copy "%JAVA_HOME%\bin\java.exe" "%JAVA_HOME%\bin\omp.exe"
           omp  -Xms64m  -Xmx128m  ...
           重启java程序后在在任务管理器中看见的进程名就不再是java.exe,而是omp.exe了。
     

    转载于:https://www.cnblogs.com/lnlvinso/p/4622881.html

    展开全文
  • 展开全部可以在new 线程的时候指定线程名称,如果后期还想修改,e68a843231313335323631343130323136353331333361323562可以调用Thread的setName方法:publicstaticvoidmain(String[]args)...

    展开全部

    可以在new 线程的时候指定线程名称,如果后期还想修改,e68a843231313335323631343130323136353331333361323562可以调用Thread的setName方法:public static void main(String[] args) throws InterruptedException {

    Thread thread = new Thread(new Runnable() {

    @Override

    public void run() {

    System.out.println(Thread.currentThread().getName());

    try {

    Thread.sleep(1000);

    // 主线程中进行了修改

    System.out.println(Thread.currentThread().getName());

    } catch (InterruptedException e) {

    e.printStackTrace();

    }

    }

    }, "这里设置线程名称");

    thread.start();

    // 500毫秒后修改线程名称

    Thread.sleep(500);

    thread.setName("新的线程名称!");

    }

    运行结果:

    374d3815d289af7f89b3c20e0556203c.png

    展开全文
  • 修改当前程序文件名,命令:ren 旧文件名新文件名 删除旧文件,命令:del /q /f 旧文件名程序全路径 启动新的程序,命令:start {3} 新文件名程序全路径 3、运行bat文件 先看一下效果图: 批处理工具类:...

    实现原理:

    1、获取当前程序的进程名称

    2、创建批处理bat文件,批处理bat文件一共实现四个功能:

    • 杀死当前进程,命令: taskkill /f /im 当前进程名称
    • 修改当前程序文件名,命令:ren 旧文件名 新文件名
    • 删除旧文件,命令:del /q /f 旧文件名程序全路径
    • 启动新的程序,命令:start {3} 新文件名程序全路径

    3、运行bat文件 

    先看一下效果图:

    批处理工具类:BatUtils.cs

    /// <summary>
        /// 批处理工具类
        /// </summary>
        class BatUtils
        {
            /// <summary>
            /// 写入bat文件
            /// </summary>
            /// <param name="fileContent"></param>
            /// <param name="filePath"></param>
            public static void writeBATFile(string fileContent, string filePath)
            {
                FileStream fs1 = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write);//创建写入文件
                StreamWriter sw = new StreamWriter(fs1, Encoding.GetEncoding("GB2312"));
                sw.WriteLine(fileContent);//开始写入值
                sw.Close();
                fs1.Close();
            }
            /// <summary>
            /// 执行bat文件
            /// </summary>
            /// <param name="filePath">所在目录</param>
            /// <param name="fileName">文件名</param>
            public static bool runBATFile(string filePath, string fileName)
            {
                bool flag = false;
                Process proc = null;
                try
                {
                    string targetDir = string.Format(filePath);
                    proc = new Process();
                    proc.StartInfo.WorkingDirectory = targetDir;
                    proc.StartInfo.FileName = fileName;
                    proc.StartInfo.Arguments = string.Format("10");
                    proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;//这里设置DOS窗口不显示
                    proc.Start();
                    proc.WaitForExit();
                    proc.Close();
                    flag = true;
                }
                catch (Exception ex)
                {
                    flag = false;
                    Console.WriteLine("Exception Occurred :{0},{1}", ex.Message, ex.StackTrace.ToString());
                }
                return flag;
            }
            /// <summary>
            /// 运行cmd命令
            /// </summary>
            /// <param name="command"></param>
            public static void RunCmd(string command)
            {
                //不管命令是否成功均执行exit命令,否则当调用ReadToEnd()方法时,会处于假死状态
                //command = command.Trim().TrimEnd('&') + "&exit";
                using (Process p = new Process())
                {
                    p.StartInfo.FileName = "cmd.exe";
                    //是否使用操作系统shell启动
                    p.StartInfo.UseShellExecute = false;
                    //接受来自调用程序的输入信息
                    p.StartInfo.RedirectStandardInput = true;
                    //输出信息
                    p.StartInfo.RedirectStandardOutput = true;
                    //输出错误
                    p.StartInfo.RedirectStandardError = true;
                    //不显示程序窗口
                    p.StartInfo.CreateNoWindow = true;
                    //启动程序
                    p.Start();
                    //向cmd窗口发送输入信息
                    p.StandardInput.AutoFlush = true;
                    p.StandardInput.WriteLine(command);
                    //获取cmd窗口的输出信息
                    //string output = p.StandardOutput.ReadToEnd();
                    p.WaitForExit();//等待程序执行完退出进程
                    p.Close();
                }
            }
        }

    Form1窗体代码:

     public partial class Form1 : Form
        {
            private string processName;//当前程序进程名
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                //获取当前进程名称
                Process cur = Process.GetCurrentProcess();
                processName = cur.ProcessName;
                this.Text = processName;
            }
    
            private void btnSave_Click(object sender, EventArgs e)
            {
                string appName = txtAppName.Text.Trim();
                if (appName == string.Empty)
                {
                    MessageBox.Show("请输入程序名称");
                    return;
                }
                if (!appName.Contains(".exe"))
                    appName += ".exe";
                string newFilePath = Environment.CurrentDirectory + "//" + appName;
                //正在运行的程序路径和文件名
                string oldFilePath = Application.ExecutablePath;
                string appBat = String.Format(@"
                @echo off
                taskkill /f /im {0}
                ren {0} {1}
                del /q /f {2} 
                start {3}", processName+".exe", appName, oldFilePath, newFilePath);
                BatUtils.writeBATFile(appBat, "修改进程名.bat");
                //隐藏文件          
                FileInfo fi = new FileInfo(Environment.CurrentDirectory + "\\修改进程名.bat");
                fi.Attributes = fi.Attributes | FileAttributes.Hidden;
                if (File.Exists("修改进程名.bat"))
                {
                    BatUtils.runBATFile(Environment.CurrentDirectory, "修改进程名.bat");
                }
            }
    
        }

     

    展开全文
  • 修改进程名字

    千次阅读 2015-12-22 09:20:55
    每一个c程序都有个main函数,作为程序启动入口函数。main函数的原型是int main(int argc , char *argv[]);其中argc表示命令行参数的个数;argv是一个指针数组,保存所有命令行字符串。Linux进程名称是通过命令行参数...

    每一个c程序都有个main函数,作为程序启动入口函数。main函数的原型是int main(int argc , char *argv[]);其中argc表示命令行参数的个数;argv是一个指针数组,保存所有命令行字符串。Linux进程名称是通过命令行参数argv[0]来表示的。

    Linux 还有环境变量参数信息,表示进程执行需要的所有环境变量信息。通过全局变量

    Char **environ;可以访问环境变量。

    命令行参数argv和环境变量信息environ是在一块连续的内存中表示的,并且environ紧跟在argv后面。如下图:

     

    1.2    验证argv和environ执行连续内存的测试程序

    1. 1 #include <stdio.h>  
    2.   2 #include <string.h>  
    3.   3  
    4.   4 extern char **environ;  
    5.   5 int main(int argc , char *argv[])  
    6.   6 {  
    7.   7    int i;  
    8.   8  
    9.   9    printf("argc:%d\n" , argc);  
    10.  10  
    11.  11    for (i = 0; i < argc; ++i){  
    12.  12        printf("%x\n" , argv[i]);  
    13.  13        printf("argv[%d]:%s\n" , i , argv[i]);  
    14.  14     }  
    15.  15  
    16.        for (i = 0; evrion[i]; i ++)
    17.  16     printf("evriron=%x %s\n" , environ[i], environ[i]);  
    18.  17  
    19.  18    return 0;  
    20.  19 }  

     

     

    root@VM-Ubuntu203001:~/test#gcc -o test main.c

    root@VM-Ubuntu203001:~/test#./test -p /usr/local/nginx -n 32

    argc:5

    bfa0c8f2

    argv[0]:./test

    bfa0c8f9

    argv[1]:-p

    bfa0c8fc

    argv[2]:/usr/local/nginx

    bfa0c90d

    argv[3]:-n

    bfa0c910

    argv[4]:32

    evriron=bfa0c913

    1.3    修改进程名称

    按理说,修改进程名称,只需要修改argv[0]指向的内存的值为所需要的值即可。但是当我们要修改的值超过argv[0]所指向的内存空间大小时,再这样直接修改,就会覆盖掉一部分argv[1]的值,因为从上面的图中,很容易就可以看出。

    这时候,该怎么做呢?

    1、必须重新分配一块连续的内存空间,把argv和environ的参数都复制到新的空间。

    2、修改argv[0]为所需要修改的值。

    1.4    Nginx的做法

    1.  * To change the process title in Linux andSolaris we have to set argv[1]  
    2.  * to NULL and to copy the title to the sameplace where the argv[0] points to.  
    3.  * However, argv[0] may be too small to hold anew title.  Fortunately, Linux  
    4.  * and Solaris store argv[] and environ[] oneafter another.  So we should  
    5.  * ensure that is the continuous memory andthen we allocate the new memory  
    6.  * for environ[] and copy it.  After this we could use the memory starting  
    7.  * from argv[0] for our process title.  
    8.  *  
    9.  * The Solaris's standard /bin/ps does not showthe changed process title.  
    10.  * You have to use "/usr/ucb/ps -w"instead.  Besides, the UCB ps does not  
    11.  * show a new title if its length less than theorigin command line length.  
    12.  * To avoid it we append to a new title theorigin command line in the  
    13.  * parenthesis.  
    14.  */  
    15.    
    16. extern char **environ;  
    17.    
    18. static char *ngx_os_argv_last;  
    19.    
    20. ngx_int_t  
    21. ngx_init_setproctitle(ngx_log_t *log)  
    22. {  
    23.     u_char      *p;  
    24.     size_t       size;  
    25.     ngx_uint_t   i;  
    26.    
    27.     size = 0;  
    28.    
    29.     for (i = 0; environ[i]; i++) {  
    30.         size+= ngx_strlen(environ[i]) + 1;  
    31.     }  
    32.    
    33.     p = ngx_alloc(size, log);  
    34.     if (p == NULL) {  
    35.         return NGX_ERROR;  
    36.     }  
    37.    
    38.    /* 
    39.    这是为了找出argv和environ指向连续内存空间结尾的位置,为了能处理argv[i]被修改后,指向非进程启动时所分配的连续内存,而采用了下面的算法。但是实际上,这样还是处理不了这种情况。仅仅是个人愚见!!! 
    40.    */  
    41.     ngx_os_argv_last= ngx_os_argv[0];  
    42.    
    43.     for (i = 0; ngx_os_argv[i]; i++) {  
    44.         if (ngx_os_argv_last == ngx_os_argv[i]) {  
    45.             ngx_os_argv_last= ngx_os_argv[i]+ ngx_strlen(ngx_os_argv[i]) + 1;  
    46.         }  
    47.     }  
    48.    
    49.     for (i = 0; environ[i]; i++) {  
    50.         if (ngx_os_argv_last == environ[i]) {  
    51.    
    52.             size= ngx_strlen(environ[i]) + 1;  
    53.             ngx_os_argv_last= environ[i]+ size;  
    54.    
    55.             ngx_cpystrn(p, (u_char *) environ[i], size);  
    56.             environ[i] = (char *) p;  
    57.             p+= size;  
    58.         }  
    59.     }  
    60.    
    61.     ngx_os_argv_last--;  
    62.    
    63.     return NGX_OK;  
    64. }  
    65.    
    66.    
    67. void  
    68. ngx_setproctitle(char *title)  
    69. {  
    70.     u_char     *p;  
    71.    
    72. #if (NGX_SOLARIS)  
    73.    
    74.     ngx_int_t   i;  
    75.     size_t      size;  
    76.    
    77. #endif  
    78.    
    79.     ngx_os_argv[1]= NULL;  
    80.    
    81.     p = ngx_cpystrn((u_char*) ngx_os_argv[0], (u_char*) "nginx: ",  
    82.                     ngx_os_argv_last- ngx_os_argv[0]);  
    83.    
    84.     p = ngx_cpystrn(p, (u_char *) title, ngx_os_argv_last - (char*) p);  
    85.    
    86. #if (NGX_SOLARIS)  
    87.    
    88.     size = 0;  
    89.    
    90.     for (i = 0; i < ngx_argc; i++) {  
    91.         size+= ngx_strlen(ngx_argv[i]) + 1;  
    92.     }  
    93.    
    94.     if (size > (size_t)((char *) p - ngx_os_argv[0])) {  
    95.    
    96.         /* 
    97.          * ngx_setproctitle() is too rareoperation so we use 
    98.          * the non-optimized copies 
    99.          */  
    100.    
    101.         p = ngx_cpystrn(p, (u_char *) " (",ngx_os_argv_last - (char*) p);  
    102.    
    103.         for (i = 0; i < ngx_argc; i++) {  
    104.             p= ngx_cpystrn(p,(u_char *) ngx_argv[i],  
    105.                             ngx_os_argv_last - (char*) p);  
    106.             p= ngx_cpystrn(p,(u_char *) "", ngx_os_argv_last - (char *) p);  
    107.         }  
    108.    
    109.         if (*(p - 1) == ' ') {  
    110.             *(p- 1) = ')';  
    111.         }  
    112.     }  
    113.    
    114. #endif  
    115.    
    116.     if (ngx_os_argv_last - (char*) p) {  
    117.         ngx_memset(p, NGX_SETPROCTITLE_PAD,ngx_os_argv_last - (char*) p);  
    118.     }  
    119.    
    120.     ngx_log_debug1(NGX_LOG_DEBUG_CORE, ngx_cycle->log, 0,  
    121.                    "setproctitle:\"%s\"", ngx_os_argv[0]);  
    122. }  
    展开全文
  • 1. 修改工程(apk名称) 在弹出的对话框中输入新名称 该操作实际上是修改/.project下的节点。但由于某种原因,只修改该文件的话,在adt-bundle中,显示的工程名称仍然为老名称,只是apk的名称变为了新名称,因此...
  • 本文概述:介绍了python开发的程序如何修改为自定义进程名。笔者在公司里实际项目开发中遇到过一个问题,就是在开发多进程模型的程序里,好家伙,进程名都是 python ,有种“双兔傍地走,安能辨我是雄雌
  • python修改进程名

    2020-12-09 19:25:09
    一般情况下,我们直接启动python程序后使用ps查看,显示的结果为pyton xxx.py,web类应用使用netstat或ss查看显示为python。...setproctitle.setproctitle("进程别名") 导入模块,在程序的入口设置就好了。 .
  • linuxc修改进程名

    千次阅读 2018-11-15 17:37:54
    每一个c程序都有个main函数,作为程序启动入口函数。main函数的原型是int main(int argc , char *argv[]);其中argc表示命令行参数的个数;argv是一个指针数组,保存所有命令行字符串。Linux进程名称是通过命令行参数...
  • 偶尔看到一段代码,是修改进程名的,觉得不对,遂网上查之。结果如下: 介绍: 每一个c程序都有个main函数,作为程序启动入口函数。main函数的原型是int main(int argc , char *argv[]);其中argc表示命令行参数...
  • 进程、加壳、自修改程序gdb调试方法与逆向步骤(shm_re程序为例) shm_re程序下载地址:链接:https://pan.baidu.com/s/17eoqoutWcoM-9B03Y2iLWg 提取码:ivqk gdb调试多进程 1.gdb调试 常用命令 list/l 行号:...
  • 修改java在进程中的映像 java小程序用java -jar xxx.jar 启动的进程映像名都是java.exe。 如果启动多个小程序就不好区分,导致监控程序无法定位到具体需要守护的小程序上。  解决办法: 在java...
  • 当同一个服务器上启动多个tomcat后,我们会在任务管理器中看见多个java.exe,当我们需要对某个tomcat进行监控时,却无法区分出该tomcat的进程,那么如何修改进程名呢?  打开tomcat_home\bin\setclasspath.bat...
  • Linux下修改进程名称

    2015-11-24 17:46:00
    catalog 1. 应用场景 2. 通过Linux prctl修改进程名 3. 通过修改进程argv[0]修改进程名 4. 通过bash exec命令修改一个进程的cmdline信息 ...3. 恶意程序、木马会通过"檫除"自己的进程名,使ps的时候显示的...
  • 采用静态优先数的方法,编写一进程调度程序模拟程序进程状态为就绪、运行、阻塞三种。模拟程序只对你所设置的“虚拟PCB”进行相应的调度模拟操作,即每发生“调度”时,显示出当前“PCB名字”、优先数、运行时间等...
  • 进程内存修改

    千次阅读 2019-09-03 23:17:13
    设计一个为MemChange的应用程序,让它修改Test.exe进程里面的内容。 每个进程占用的内存空间是离散的,所以要访问进程内存种的一个值,就需要遍历整个64K---2G的地址空间。 难点1.MemChange如何访问Test的进程...
  • Problem 61修改进程的显示名称? Ans: 要更改一个进程的显示名称,需要使用系统调用prctl(), 其中PR_SET_NAME可用于修改进程显示名字。 测试程序: # include <stdio.h> # include <sys/prctl.h...
  • linux下修改进程名称

    千次阅读 2014-09-15 21:10:47
    在编写网络服务器程序时,为了响应客户端的... 但是在新建进程时,子进程名与父进程名相同。因此需要由进程名及参数来区分客户端连接。  在linux中prctl可以满足这个要求,下满是man手册:  PR_SET_NAME (since
  • 默认情况下,同一个应用程序中的所有组件运行在同一个进程中,而且绝大多数的应用程序也都是这样的。但是,如果我们想要控制让某个特定的组件属于某个进程,我们可以在manifest文件中进行配置。 在每种组件元素(act...
  • 没有很好的办法。我们使用java.exe来执行的jar的程序,在Windows的任务管理器里面显示的都是java....比如,我有个程序叫做“hello”,我想在Windows的任务管理器里面看见的进程名称是“hello.exe",就去修改jr...
  • Solaris10修改进程名称

    2010-10-28 19:28:00
    对于多进程程序,由于会针对同一可执行文件起多个进程,这样用ps –ef会看到多个同名的进程在运行。存在辨别到底是哪个进程的问题,所要要针对每一个进程取一个唯一的名字。
  • 监控进程程序_能重新启动程序 作者: hnynes...这个并没有做文件的查找,因此,如果要对特定的文件作监控,修改路径与应用程序名.愿与大家共享,希望中国的明天有更多后继者. 原理都有很多人都讲过了,这里我就不再
  • //Resource Limits 名字 默认 可修改范围 更新日志 //memory_limit "128M" PHP_INI_ALL "8M" before PHP 5.2.0, "16M" in PHP 5.2.0 //echo memory_get_peak_usage();//返回分配给 PHP 内存的峰值 //echo ...
  • 问题:LoadRunner的HP Web Tours 应用程序服务启动不了,提示1080端口被占用的...在任务管理器中 找到该PID的进程名,我这里显示的是oracle.exe占用(怕影响其他服务,所以不做终止这个服务的操作,重新考虑修改Load...
  • 进程名其实就是exe的文件名,所以为了安全修真就产生了最好能每次启动软件前都随机修改一下exe文件名的需求。但是我们都知道一旦软件启动后是无法修改其文件名的,网上当然也有大神提供了一个方案:  需要重命名的...
  • 使用C查找使用某端口的进程名

    千次阅读 2012-12-25 14:51:16
    但是如果,想要在程序中自己实现,就需要做点修改了。  从网上查找的相关资料表明,可以有几种方法实现:  一、借用 netstatp 早期的开源项目,C形式封装的,非常好用,但缺点是,查找结果不完善。 而新版本的...
  • 修改LoadRunner自带的示例程序端口号

    千次阅读 2016-08-27 22:57:58
    问题:LoadRunner的HP Web Tours应用程序服务启动不了,提示1080端口被占用的问题 ... 在任务管理器中找到该PID的进程名,我这里显示的是oracle.exe占用(怕影响其他服务,所以不做终止这个服务的操作,重新考虑修改L
  • PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。 这个问题影响不大,可以不解决,也可以解决 在setting文件里面修改 # file_name = './logs/' + str(hostname) +'.log' ...把进程名加入其

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 583
精华内容 233
关键字:

修改程序进程名