java转linux_[转]注册java程序为LINUX系统服务的总结。

实现开机启动。

标准方法是按照/etc/init.d/下面的文件,修改一下;然后chkconfig xxx on 即可。比较麻烦。。放弃..

可以简单实现开机自启动就是了。。

2.在/etc/rc.local里面写

/bin/bash  /xxxx.sh

编写服务脚本。运行。。locationServc.sh start/stop/restart/?

运行sh,提示权限不不够,winwcp>>proerty>>auth所有的打钩..

运行在, /bin/bash^M: bad interpreter:...原因:window,linux行结尾格式不一样,notepad++

>>edit>doc format convert>>convert to unix format..

//服务的关闭 locationServc.sh stop 实现原理。

程序启动的时候儿,打开一个端口,关闭的时候儿ps | grep port | grep progrmName | grep java | kill

作者Attilax  艾龙, EMAIL:1466519819@qq.com

来源:attilax的专栏

地址:http://blog.csdn.net/attilax

------------------------------打开端口

core.openPort(port);

public static void openPort(final int port) {

god.newThread(new Runnable() {

@Override

public void run() {

server( port);

}

}, "open port thrd");

}

// 服务端Socket

public static void server(int port) {

try {

ServerSocket ss = new ServerSocket(port);

// accept接受连接请求,接受到请求返回一个Socket套接字

Socket s = ss.accept();

OutputStream os = s.getOutputStream(); // 创建socket输出流

InputStream is = s.getInputStream(); // 创建socket输入流

os.write("The information comes from server!".getBytes());// 将字符串转为字节

byte[] buf = new byte[100];

while (true) {

int len = is.read(buf);

System.out.println(new String(buf, 0, len)); // 将字节数组转为字符串

core.sleep(1000);

}

// os.close();

// is.close();

// s.close();

} catch (Exception e) {

e.printStackTrace();

}

}

-----------------查看此端口程序command

ps aux| grep 9999 | grep com.xxx.linuxServiceTest |grep java

/通过端口杀死进程 (取的pid,kill)

netstat -nlp | grep :9999 | awk '{print $7}' | awk -F"/" '{ print $1 }'

“xargs kill -s 9”中的xargs命令是用来把前面命令的输出结果(PID)作为“kill -s 9”命令的参数,并执行该命令。“kill -s 9”会强行杀掉指定进程。

netstat -nlp | grep :9999 | awk '{print $7}' | awk -F"/" '{ print $1 }' | xargs  kill

需要用到"[']"操作符,它可以执行一个语句,这个可以如此执行:这个不行..

kill [']netstat -nlp | grep :3306 | awk '{print $7}' | awk -F"/" '{ print $1 }'[']

使用' kill 'xxxx'  也不行...子能xargs..

-----------------最终编写的服务脚本

#!/bin/bash

# /etc/rc.d/init.d/locationServc.sh

JAVA_HOME=/usr/java/jdk1.6.0_21

JAVA_BIN=/usr/java/jdk1.6.0_21/bin

PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME JAVA_BIN PATH CLASSPATH

CATALINA_HOME=/home/focustar/apache-tomcat-6.0.37

export  CATALINA_HOME

#o313 -----------------

apphome=/imServer

export  apphome

CLASSPATH=$CLASSPATH:$apphome/WebRoot/WEB-INF/classes

export   CLASSPATH

jardirs=$apphome/lib

export   jardirs

ERP_PORT=10999

#o313 end---------------------------

start()

{

echo "Starting locationServc..."

#rem不过,作业在后台运行一样会将结果输出到屏幕上,干扰你的工作。如果放在后台运行的作业会产生大量的输出,最好使用下面的方法把它的输出重定向到某个文件中

java   -Djava.ext.dirs=$jardirs -classpath  $CLASSPATH com.attilax.util.linuxServiceTest 9999

echo "Starting ok!!!"

}

#pkill locationServc.sh

stop()

{

echo "Stopping locationServc..."

netstat -nlp | grep :9999 | awk '{print $7}' | awk -F"/" '{ print $1 }' | xargs  kill

echo "Stopping locationServc ok!!!"

}

testx()

{

echo "testxx echo"

}

case "$1" in

start)

#invoke function start()

start

;;

#case的格式要求,lyag lyedin comma

stop)

stop

;;

test)

echo "test echo...";

testx

;;

restart)

stop

sleep  3;

start

;;

?)

echo "Usage locationServc.sh start/stop/restart"

exit 1

;;

*)

start

;;

esac

#"C:\jre\bin\java.exe"   -Dfile.encoding=UTF-8

-Djava.ext.dirs="C:\jar;c:\jar1;%~dp0\lib" -classpath

".;.\classes;%~dp0\classes" homi.convert2atian

f:\Contact_QQPhoneManager(2013-12-03).csv  gbk

f:\Contact_QQPhoneManager(2013-12-03)_atian333_a.csv

c:\deeng\hezi_deeng_deduli.txt

参考

注册程序为LINUX系统服务并设置成自启动的方法 - Linux操作系统:Ubuntu_Centos_Debian - 红黑联盟.htm

Linux下通过端口杀死进程 - 站在高处眺望 - 博客园.htm

Linux Shell编程case语句 - 非淡泊无以明志,非宁静无以致远 - 博客频道 - CSDN.NET.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值