`
SwordShadow
  • 浏览: 268020 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

让linux程序后台运行

阅读更多

最近把java web项目部署到weblogic上,一直通过windows端的F-Secure操作服务器,每次启动weblogic使用./startWebLogic.sh,但是发现退出终端后,weblogic也是自动退出,查了资料,发现Unix/Linux下一般想让某个程序在后台运行,很多都是使用 & 在程序结尾来让程序自动运行。比如我们要运行mysql在后台:

 

         /usr/local/mysql/bin/mysqld_safe --user=mysql &

 

但是我们很多程序并不象mysql一样可以做成守护进程,可能我们的程序只是普通程序而已,一般这种程序即使使用 & 结尾,如果终端关闭,那么程序也会被关闭。为了能够后台运行,我们需要使用nohup这个命令,比如我们有个start.sh需要在后台运行,并且希望在后台能够一直运行,那么就使用nohup:

nohup ./start.sh &

在shell中回车后提示:

 

        [~]$ appending output to nohup.out

        原程序的的标准输出被自动改向到当前目录下的nohup.out文件,起到了log的作用。

 

但是有时候在这一步会有问题,当把终端关闭后,进程会自动被关闭,察看nohup.out可以看到在关闭终端瞬间服务自动关闭

 

在当shell中提示了nohup成功后还需要按终端上键盘任意键退回到shell输入命令窗口,然后通过在shell中输入exit来退出终端(如果每次在nohup执行成功后直接点关闭程序按钮关闭终端.。所以这时候会断掉该命令所对应的session,导致nohup对应的进程被通知需要一起shutdown)

 

       正确启动weblogic服务

       nohup ./startWebLogic.sh &

       

在Linux中,如果要让进程在后台运行,一般情况下,我们在命令后面加上&即可,实际上,这样是将命令放入到一个作业队列中

 

       查看日志

       tail -100f nohup.out 

 

查看后台运行的进程

jobs -l

 

       退出F-secure

       exit

       

        附:nohup命令参考

 

nohup 命令

 

  用途:不挂断地运行命令。

 

  语法:nohup Command [ Arg ... ] [ & ]

 

描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示"and"的符号)到命令的尾部。

 

无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。如果标准错误是一个终端,那么把指定的命令写给标准错误的所有输出作为标准输出重定向到相同的文件描述符。

 

退出状态:该命令返回下列出口值:

 

  126 可以查找但不能调用 Command 参数指定的命令。

 

  127 nohup 命令发生错误或不能查找由 Command 参数指定的命令。

 

  否则,nohup 命令的退出状态是 Command 参数指定命令的退出状态。

 

  nohup命令及其输出文件

 

nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( nohang up)。

 

  该命令的一般形式为:nohup command &

 

  使用nohup命令提交作业

 

如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:

 

  nohup command > myout.file 2>&1 &

 

在上面的例子中,输出被重定向到myout.file文件中。

 

使用 jobs 查看任务。

 

使用 fg %n 关闭。

 

另外有两个常用的ftp工具ncftpget和ncftpput,可以实现后台的ftp上传和下载,这样就可以利用这些命令在后台上传和下载文件了。

 

附:查看linux系统的几种方法:

  1. uname -a
  2. cat /proc/version
  3. cat /etc/issue
  4. lsb_release -a

 

       参考文章:http://www.einit.com/user1/11/archives/2006/3603.html  

                         http://www.williamlong.info/archives/482.html  

                         http://yakar.iteye.com/blog/687656

分享到:
评论

相关推荐

    screen下载、linux后台运行程序、linux下screen下载

    screen下载、linux后台运行程序非常实用、后台任务、screen linux redhat 、CentOs系统screen下载、linux后台运行程序、screen linux redhat 、CentOs系统screen下载、linux后台运行程序、screen linux redhat 、...

    使程序在Linux下后台运行

     2:让程序在后台跑后,不会占据终端,我们可以用终端做别的事情。  二、怎么样使程序在后台执行  方法有很多,这里主要列举两种。假如我们有程序pso.cpp,通过编译后产生可执行文件pso,我们要使pso在linu

    Linux nohup实现后台运行程序及查看(nohup与&)

    一般运行linux上的程序都是执行 .sh 文件(./sh文件),那如果不影响当前CMD窗口的操作,需要后台运行怎么办呢? 这时就需要借助 nohup 和 & 命令来实现。 nohup java -server -Xms128M -Xmx512M -XX:MetaspaceSize...

    Linux后台运行py服务程序1

    &符号这两天要在服务器端一直运行一个Python脚本,当然就想到了在命令后面加&符号$ python /data/python/server.py >pytho

    在Linux中查看及终止正在运行的后台程序方法

    今天小编就为大家分享一篇在Linux中查看及终止正在运行的后台程序方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    开发Linux操作系统后台服务进程详解

    守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某 种任务或等待处理某些发生的事件。守护进程是一种很有用的进程。 Linux的大多数服务器就是用守护进程实现的。守护进程的编程...

    Linux后台运行Python程序的几种方法讲解

    今天小编就为大家分享一篇关于Linux后台运行Python程序的几种方法讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    rongyousu#HeidBook#使程序在Linux下后台运行1

    一、为什么要使程序在后台执行 二、怎么样使程序在后台执行 三、常用任务管理命令

    Linux中进程在后台可靠运行的方法总结

    本篇文章主要给大家介绍了Linux中进程在后台可靠运行的方法以及示例代码分析,一起学习参考下吧。

    QtService 实现Qt后台服务程序

    本文使用QtService演示如何实现一个windows下的后台进程,可用于一些简单的windows服务程序中。 博客介绍:https://luoyayun361.blog.csdn.net/article/details/120655011?spm=1001.2014.3001.5502

    Linux启动脚本

    #该脚本为Linux下启动java程序的通用脚本。

    Linux查看和关闭后台运行程序的方法

    主要介绍了Linux查看和关闭后台运行程序的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    在Linux终端中使用后台运行模式启动程序的方法.docx

    在Linux终端中使用后台运行模式启动程序的方法.docx

    在linux下用Qt编写的一个程序

    从莫个地址获得点数据,在图形上动态的画图,时间不停的推移。

    如何在终端下以后台模式运行Linux程序

    这是一个简短但是非常有用的教程:它向你展示从终端运行Linux应用程序的同时,如何保证终端仍然可以操作。  在Linux中有许多方式可以打开一个终端,这主要取决于你的发行版的选择和桌面环境。  使用Ubuntu的话,...

    jar畅游Linux后台

    目录jar通常方式jar后台运行方式方式一方式二查看后台运行任务查看某端口占用的线程的pidlinux 进程查看及杀死进程附录:各种信号及其用途 Linux系统运行jar包 jar通常方式 java -jar xxx.jar 特点:当前ssh窗口被...

    终端关闭后程序在后台继续运行的方法

    终端关闭后程序在后台继续运行的方法

    Linux中jar包启动和jar包后台运行的实现方式

    &代表在后台运行。 特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。 继续改进,如何让窗口关闭时,程序仍然运行? 方式三 nohup java -jar shareniu.jar & nohup 意思是不挂断运行命令,当账户退出或...

Global site tag (gtag.js) - Google Analytics