`
sealbird
  • 浏览: 583966 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java开发守护进程

    博客分类:
  • JAVA
阅读更多
其实就是想开发个Windows下系统服务一样的程序。而查了好久资料,没找到java如何开发linux的守护进程。用C语言开发感觉太麻烦了,何况还要嵌入业务。使用Servlet的话也行,但是需要额外安装tomcat。

经过一天实验,终于发现,原来这么简单!

先来段简单代码,每隔5秒更新job.log文件。用来测试一下。





view sourceprint?
import java.io.BufferedWriter;  

import java.io.File;  

import java.io.FileWriter;  

import java.io.IOException;  

import java.util.Date;  

   

   

public class Program {  

   

    /**  

     * @param args  

     */ 

    public static void main(String[] args) {  

        File f = new File("/home/xieping/job.log");  

        if (!f.exists()) {  

            try {  

                f.createNewFile();  

            } catch (IOException e) {  

                e.printStackTrace();  

            }  

        }  

        while (true) {  

            try {  

                BufferedWriter output = new BufferedWriter(new FileWriter(f));  

                output.write(new Date().toString());  

                output.close();  

            } catch (IOException e1) {  

                e1.printStackTrace();  

            }  

            try {  

                Thread.sleep(1000 * 5);  

            } catch (InterruptedException e) {  

                e.printStackTrace();  

            }  

        }  

    }  

} 

view sourceprint?
打包,我是用eclipse打包的,导出个jar包就行了。
view sourceprint?
把文件放到/home/xieping/目录下。文件名 job.jar。
view sourceprint?
开始设置为守护进程了!!
view sourceprint?
#java -jar job.jar &
view sourceprint?
简单吧,就加一个&符号。可以查看下
view sourceprint?
#ps aux|grep job
view sourceprint?
看到了,果然启动了。
view sourceprint?
#more /home/xieping/job.log
view sourceprint?
文件的时间也一直换。
view sourceprint?
<SPAN style="COLOR: #800000">注意,在开多线程的情况下,进程可能无法终止。</SPAN>
view sourceprint?
<SPAN style="COLOR: #800000">#killall java  或者 #kill 进程ID 无效。需要强制终止。</SPAN>
view sourceprint?
<SPAN style="COLOR: #800000">#kill -9 进程ID。</SPAN>
分享到:
评论

相关推荐

    java中守护进程小结

    这就意味着,如果一个Java程序只有一个主进程和若干守护线程,那么当主进程结束时,无论守护线程是否还在执行,JVM都会立即停止运行。 我们来看三种不同设置守护线程的情况: **情况一:**所有线程在启动前就被...

    守护进程(java)

    守护进程在Linux或Unix等类Unix系统中广泛存在,但Java作为一种跨平台的语言,其本身并不直接支持守护进程的概念。不过,由于Java的跨平台特性,开发者可以通过模拟实现类似的功能。 在Java中,我们可以利用线程...

    守护进程(互相监听)

    开发者采用了更深入的解决方案,通过使用NDK(Native Development Kit)和JNI(Java Native Interface)技术,直接在Android的C/C++层处理守护进程的管理和交互。这种方法能更有效地控制和优化资源使用,提高性能,...

    Windows下 tomcat的守护进程、心跳程序

    ### Windows 下 Tomcat 的守护进程与心跳检测程序详解 在 IT 领域,特别是 Java Web 开发中,Apache Tomcat 是一个非常重要的轻量级应用服务器,它主要用于部署 Java Web 应用程序。在实际生产环境中,为了保证服务...

    windows守护进程,开机自动重启,进程监测

    因为控制台程序出现过因为连接第三方服务超时直接挂掉(此时负载少了一个节点)以及服务器出现意外重启问题(该服务器所有节点宕机),所以需要一个进程守护程序。 也找过 现场的脚本、python的程序、pm2守护方式,...

    Python-NutzWk微服务开发框架应用守护进程

    **Python-NutzWk微服务开发框架应用守护进程** 在Python开发领域,微服务架构已经成为构建可扩展、高可用系统的重要手段。NutzWk框架是针对这一需求设计的,它提供了一种高效的微服务开发解决方案。本篇将深入探讨...

    Linux系统中守护进程的创建方法.pdf

    同时,守护进程也可以使用其他编程语言来实现,如 Python、Java 等。 Linux 系统中守护进程的创建方法对系统的发展和应用产生了重要的影响。守护进程可以周期性地执行某种任务或等待处理某些特定的事件,使得系统...

    守护进程(android5.1)

    在Android 5.1中,守护进程主要由Java代码实现,但也有部分用C/C++编写,这些原生代码通常用于执行性能敏感或与硬件交互的任务。Android系统中的守护进程包括网络管理、电源管理、硬件抽象层(HAL)服务、媒体服务等多...

    守护进程(C语言写的360绝对杀不死)

    守护进程(Daemon)在计算机系统中扮演...在开发过程中,应遵循最佳实践,确保守护进程高效且低消耗地运行。此外,对于Android应用,必须遵守Google Play的政策,确保应用的合规性,否则可能会被拒绝上架或被用户投诉。

    Java实现Linux下服务器程序的双守护进程

     现在的服务器端程序很多都是基于Java开发,针对于Java开发的Socket程序,这样的服务器端上线后出现问题需要手动重启,万一大半夜的挂了,还是特别麻烦的。  大多数的解决方法是使用其他进程来守护服务器程序,...

    jni守护进程及手机系统界面

    在Android开发中,了解和掌握JNI守护进程的创建以及四大组件的使用,对于优化系统性能和提供丰富的功能至关重要。开发者可以通过熟练运用这些技术,打造更加高效、灵活的应用程序。在实际项目中,应遵循最佳实践,...

    Android通过JNI实现守护进程

    在Android中,通常通过JNI(Java Native Interface)和NDK(Native Development Kit)编程来实现守护进程。 在Android 4.4中,当应用退出时,ActivityManagerService通过`killProcessQuiet(pid)`直接结束主进程。而...

    Android 实现双守护进程,保证不被杀死 源码

    然而,为了提高应用的稳定性和抗干扰能力,有时我们需要实现双守护进程的机制,确保即使主进程被系统或者其他因素意外结束,应用的关键服务仍能继续运行。本文将深入探讨如何在Android中实现双守护进程,以及如何...

    增加了将服务端守护进程化

    在IT行业中,守护进程(Daemon)是一种在后台运行的...在实际开发中,开发者通常会使用各种语言提供的库或框架,如Python的`daemonize`模块、Java的`java.lang.Runtime`类,或者直接操作操作系统接口来实现这一过程。

    java、杀死启动进程、定时执行程序、隐藏黑窗口(dos窗口)、线程异常死亡(保活)

    在Java开发中,有时我们需要处理一系列复杂的问题,如管理进程、执行定时任务、处理异常以及隐藏命令行窗口。本文将详细探讨这些知识点,并提供一种自动重启JBOSS服务器的方案。 首先,我们要理解如何在Java中杀死...

    创建守护进程

    在实际开发中,工具有助于简化守护进程的创建,例如Python的`daemonize`库或Java的`java.lang.ProcessBuilder`类。这些工具通常已经封装了上述步骤,使得开发者能够更加专注于业务逻辑。 总之,守护进程是系统服务...

    Android常驻进程之守护进程

    在Android系统中,进程是应用程序运行的基础,而“常驻进程”或“守护进程”(Service)则是一种特殊类型的进程,它们在后台持续运行,即使用户不再与应用程序交互,也能保持服务的活性。这种机制对于实现长期运行的...

    javacomplete:java完成守护进程

    Java 编程语言的自动完成守护进程 完成守护进程提供类似 ide 的功能。 发展还处于非常早期的阶段。 完成度肯定可以改进,并且在某些极端情况下可能不起作用。 尽管如此,我已经在使用完成进行开发,所以我认为它处于...

    java程序做成Windows服务运行

    Winsw(Windows Service Wrapper)是一个轻量级的、可移植的工具,由JetBrains开发并开源。它能够将任何可执行文件转换为Windows服务,这样程序就可以在系统启动时自动运行,并在用户登录或注销时保持活动状态。 2...

    输出java进程的jstack信息示例分享 通过线程堆栈信息分析java线程

    为了获取这些信息,我们可以使用jstack工具,它是Java开发工具包(JDK)的一部分,能够输出Java进程的线程堆栈跟踪信息。 jstack命令通常可以输出以下类型的信息: 1. 线程的完整堆栈跟踪,包括本地方法。 2. 显示...

Global site tag (gtag.js) - Google Analytics