setsid java -server命令解析

#!/bin/bash
BASEDIR=`dirname $0`/../lib
BASEDIR=`(cd "$BASEDIR"; pwd)`
FEATURE=com.jdo.bp.sample.real.time.App

setsid java -server -Xms1024m -Xmx3072m -XX:MaxPermSize=3072m -XX:+UseParallelGC -XX:+UseParallelOldGC -DinstanceId=1 -Djava.ext.dirs=$BASEDIR $FEATURE &

1、关于setid的详解内容引用阿里云的一篇文章(源内容网址),内容如下:

  • 摘要:当用户注销(logout)或者网络断开时,终端会收到HUP(hangup)信号从而关闭其所有子进程。因此,我们的解决办法就有两种途径:要么让进程忽略HUP信号,要么让进程运行在新的会话里从而成为不属于此终端的子进程。(hangup名称的来由:在Unix的早期版本中,每个终端都会通过modem和系统通讯。当用户logout时,modem就会挂断(hangup)电话。同理,当modem断开连接时,就会给终端发送hangup信号来通知其关闭所有子进程)1.nohup:让提交的命令忽
  • 当用户注销(logout)或者网络断开时,终端会收到 HUP(hangup)信号从而关闭其所有子进程。因此,我们的解决办法就有两种途径:要么让进程忽略 HUP 信号,要么让进程运行在新的会话里从而成为不属于此终端的子进程

    (hangup 名称的来由:在 Unix 的早期版本中,每个终端都会通过 modem 和系统通讯。当用户 logout 时,modem 就会挂断(hang up)电话。 同理,当 modem 断开连接时,就会给终端发送 hangup 信号来通知其关闭所有子进程)

    1.nohup:让提交的命令忽略 hangup 信号

    nohup 的帮助信息:

    $ nohup --help 
    Usage: nohup COMMAND [ARG]... or: nohup OPTION 
    Run COMMAND, ignoring hangup signals. --help display this help and exit --version output version information and exitIf standard input is a terminal, redirect it from an unreadable file.If standard output is a terminal, append output to 'nohup.out' if possible,'$HOME/nohup.out' otherwise.If standard error is a terminal, redirect it to standard output.To save output to FILE, use 'nohup COMMAND > FILE'.

    使用:在要处理的命令前加上 nohup 即可,标准输出和标准错误缺省会被重定向到 nohup.out 文件中。一般我们可在结尾加上"&;"来将命令同时放入后台运行,也可用"> filename"来更改缺省的重定向文件路径。

    nohup ping www.baidu.com &;nohup python train_model.py > console.log &;

    2.setsid:在新session执行命令(使进程不属于接受 HUP 信号的终端的子进程,那么就不会受到 HUP 信号的影响)

    setsid的帮助信息:

    $ setsid --helpUsage: setsid [options] <program> [arguments ...]Run a program in a new session.Options: -c, --ctty set the controlling terminal to the current one -w, --wait wait program to exit, and use the same return -h, --help display this help and exit -V, --version output version information and exit 

    使用:

    setsid ping www.ibm.com &;

    另外,查看进程并停止:

    $ ps -ef | grep pingabby 3899 1632 0 14:39 ? 00:00:00 ping www.baidu.comabby 4038 3907 0 14:43 pts/20 00:00:00 grep --color=auto ping$ kill -9 3899

    参考:

    Linux 技巧:让进程在后台可靠运行的几种方法

  • 以上是nohup/setsid/& 让进程在后台可靠运行的内容,更多 后台 进程 可靠 运行 setsid nohup 的内容,请您使用右上方搜索功能获取相关信息。

根据上面的描述,setsid是用来保证当用户注销(logout)或者网络断开时当前启动的子进程不会被关闭,从而就可以一直运行。

2、java -server -Xms1024m -Xmx3072m -XX:MaxPermSize=3072m -XX:+UseParallelGC -XX:+UseParallelOldGC用来配置虚拟机参数(采用服务端模式)

3、-DinstanceId=1用来设置系统属性,名称为instanceId,value为1,-D为系统属性的标志,该系统属性可以通过

System.getProperty();函数来获取,将名称传入参数中,函数将返回value值,例如:

String log4jConfLocation = System.getProperty("log4jConfLocation");//获取log4jConfLocation对应的value值

4、-Djava.ext.dirs设置java.ext.dirs值,-Djava.ext.dirs会覆盖Java本身的ext设置,java.ext.dirs指定的目录由ExtClassLoader加载器加载,如果没有指定该系统属性,那么该加载器默认加载$JAVA_HOME/jre/lib/ext目录下的所有jar文件。但如果你手动指定系统属性且忘了把$JAVA_HOME/jre/lib/ext路径给加上,那么ExtClassLoader不会去加载$JAVA_HOME/lib/ext下面的jar文件,这意味着你将失去一些功能,例如java自带的加解密算法实现。

5、$FEATURE为加载主类

6、&表示在后台运行该服务

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值