zoukankan      html  css  js  c++  java
  • linux运行jar、nohup: ignoring input and redirecting stderr to stdout

    在linux服务器上运行Jar文件时通常的方法是:

    $ java -jar test.jar
    //这种方式特点是ssh窗口关闭时,程序中止运行.或者是运行时没法切出去执行其他任务

    jar在后台运行的方法:

    方法一:

    $ nohup java -jar test.jar &
    //nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
    //当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中
    //除非另外指定了输出文件。

    方法二:

    $ nohup java -jar test.jar >temp.txt &
    //这种方法会把日志文件输入到你指定的文件中,没有则会自动创建

    jobs命令和 fg命令:

    $ jobs
    //那么就会列出所有后台执行的作业,并且每个作业前面都有个编号。
    //如果想将某个作业调回前台控制,只需要 fg + 编号即可。
    $ fg 2

    查看某端口占用的线程的pid

    netstat -nlp |grep :8080

    出现:nohup: ignoring input and redirecting stderr to stdout

    nohup java -jar test.jar >temp.txt &
    改成
    nohup java -jar test.jar >temp.txt 2>&1 &

    解决linux环境下nohup: redirecting stderr to stdout问题

    我的启动命令是这样的:
    nohup bin/startManagedServer.sh myserver htp://192.168.0.1 -Xms2048m -Xmx2048m > logs/myserver.out &现在指行这个命令,会给我产生两个文件,一个中logs/myserver.out,另一个是nohup.out文件。
    怎样才能让它不产生nohup.out文件呢。
    网上搜了半天,据说好象可以把后面的 “&” 改成 “2>&1 &”,于是把启动命令改成如下:

    nohup bin/startManagedServer.sh myserver htp://192.168.0.1 -Xms2048m -Xmx2048m > logs/myserver.out 2>&1 &再次执行,问题解决。

    解释如下:

    2>
    表示把标准错误(stderr)重定向,标准输出(stdout)是1。

    尖括号后面可以跟文件名,或者是&1, &2,分别表示重定向到标准输出和标准错误。

    2> &1
    1> &2
    2> stderr.log
    1> stdout.log

  • 相关阅读:
    【转载】数据结构与算法设计
    【转载】简述Linux的启动过程
    【转载】20分钟MySQL基础入门
    【转载】linux内核笔记之进程地址空间
    【转载】linux内核笔记之高端内存映射
    Logical Address->Linear Address->Physical Address
    【转载】教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神
    【转载】不会编程也能写爬虫?可视化爬虫工具是什么东东
    【转载】我是一个键盘
    80. Remove Duplicates from Sorted Array II
  • 原文地址:https://www.cnblogs.com/hooly/p/12915123.html
Copyright © 2011-2022 走看看