paip.注册java程序为LINUX系统服务的总结。
paip.注册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
paip.注册java程序为LINUX系统服务的总结。的更多相关文章
- paip. 解决java程序不能自动退出
paip. 解决java程序不能自动退出 原因:有东西在运行,所以,不能自动退出.. 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源:attilax的专栏 地址: ...
- 如何注册java程序为windows服务
如何注册java 程序为windows 服务 最近想找个软件来控制电脑的关机时间,在网上找了几个,都是可视化界面的可以设置具体的关机时间的软件.由于我想编写的关机程序是运行在别人机器上,只能让该机器在 ...
- 树莓派上Java程序作为linux服务并开机自动启动
http://www.iigrowing.cn/shu_mei_pai_shang_java_cheng_xu_zuo_wei_linux_fu_wu_bing_kai_ji_zi_dong_qi_d ...
- Java程序执行Linux命令
Java程序中要执行linux命令主要依赖2个类:Process和Runtime 首先看一下Process类: ProcessBuilder.start() 和 Runtime.exec 方法创建一个 ...
- Java程序执行Linux命令(JSP运行其他程序)
java程序中要执行linux命令主要依赖2个类:Process和Runtime 首先看一下Process类: ProcessBuilder.start() 和 Runtime.exec 方法创建一个 ...
- java 程序从linux 上接收不可见字符
近期在写一个简单的小java程序,希望在运行java 程序时,从shell 中接收参数,并且参数的内容为不可见字符. 开始时还觉得可以使用"\"之类的转义符来写,后来发现java程 ...
- Java程序作linux服务并且开机自动启动[转]
以有个java应用名称为test,打包为test.jar,程序入口为cn.com.ppnote.SocketServer. 下面在linux的/opt下建立testapp目录,复制test.jar到/ ...
- 使用Java Service Wrapper将java程序作为linux服务并且开机自动启动
以java应用程序为例,打包为tianlong.jar,程序入口为tianlong.QueueTest. 下面在linux的/opt下建立tianlong目录,复制tianlong.jar到/opt/ ...
- Java程序在Linux上运行虚拟内存耗用很大
突然集群的2个节点挂了,通过top查看, 虚拟内存22G, 通过 pmap -x 8 | grep anon 一大堆64M Linux下glibc的内存管理机制用了一个很奇妙的东西,叫arena.在g ...
随机推荐
- 第二次作业#include <stdio.h> int main() { int a,b,c,d,e; printf("请输入一个不多于五位的整数:\n"); scanf("%d",&a); if(a>=100000||a<=0) { printf("输入格式错误! \n"); } else { if(
1 判断成绩等级 给定一百分制成绩,要求输出成绩的等级.90以上为A,80-89为B,70-79为C,60-69为D,60分以下为E,输入大于100或小于0时输出"输入数据错误". ...
- plupload简易应用 多图片上传显示预览以及删除
<script> var uploader = new plupload.Uploader({ //实例化一个plupload上传对象 browse_button: 'btnBrowse' ...
- PHP 使用reflection时的问题,以及解决方案
错误:PHP Fatal error: Using $this when not in object context 代码如下: <?php class someClass { private ...
- mysql学习-windows下绿色版mysql安装问题解决办法
1.下载绿色版mysql 从该地址http://dev.mysql.com/downloads/mysql/ 中选择windows的版本,选择下载. 2.将下载的压缩包解压. 3.将根目录下的my-d ...
- 在updatepanel使用colorbox无效
今天在给一个使用colorbox的页面加了一个updatepanel后,colorbox无效了,原因是以前的页面初始化colorbox是用 $(document).ready(function(){ ...
- 問題排查:建立選單時的錯誤 errcode:40016, errmsg:invalid button size hint: [RI68La0851vr18]
可能原因: 1.如提示所說,第一層選單個數超過限制 (最多3個) 2.選單的 json 格式有誤,目前已知少了括弧會提示此錯誤
- Git常用命令(自己总是忘记,整理在这里)
1.git init 初始化一个空的git仓库 2.git clone +SSH地址 clone新的项目到本地 3.git add git add file 4.git commi ...
- 用JS制作简易的可切换的年历,类似于选项卡
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 30.0px Consolas; color: #2b7ec3 } p.p2 { margin: 0.0px ...
- win10使用Composer-Setup安装Composer以及使用Composer安装Yii2最新版
1:下载 ca-bundle.crt和cacert.pem 将这两个文件放在php目录下 2:php.ini中添加上述两个文件的路径 curl.cainfo=C:/xampp/php/ca-bundl ...
- github 仓库管理
一.远程仓库有master和dev分支1. 克隆代码 git clone https://github.com/master-dev.git # 这个git路径是无效的,示例而已 2. 查看所有分支 ...