时隔两年最近再次折腾opensuse 的一些笔记 - opensuse linux java service shell

opensuse 一些常用命令:
    service xxx start/stop  运行或停止服务
    chkconfig xxx on/off    将服务加入启动,重启后永久生效
    ps -ef 查看所有当前进程
    kill PID 终止某个ID 的进程

修改权限,让普通用户具有 root 权限:
1)修改 /etc/passwd 将用户id 修改成 0

如: hz:x:0:0; huangzhi;; /home/hz/bin/bash

2) 修改 /etc/sudoers 在其中追加:

hz ALL=(ALL) ALL

给自己的某个 jar 包做成 linux 服务,分三步:

1)编写jar 包运行脚本 youservice.sh

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin  
CONNECT_HOME=/usr/local/myproject
cd $CONNECT_HOME

java -server -jar $CONNECT_HOME/my-server-launcher.jar &

2)编写 /etc/init.d/youservice shell脚本

#!/bin/bash  
#  
# Description:  测试  youservice

#  
# Source function library  
 
    . /lib/lsb/init-functions

# END INIT

case "$1" in  
      start)  
         echo "Starting youservice server"  
         #重点注意是  >/dev/null 2>&1 , 这行命令导致终端不会输出信息。
         /bin/bash /usr/local/myproject/youservice.sh >/dev/null 2>&1   
         ;;  
      stop)  
         PID=`ps -ef | grep 'my-server-launcher.jar' | grep -v grep | awk '{print $2}'`  
         echo PID
         echo "Stopping youservice server"  
         if [ ! -z "$PID" ]; then  
        kill -15 $PID  
         fi  
         ;;  
      restart)  
         $0 stop  
         $0 start  
         ;;  
      dump)
     PID=`ps -ef | grep 'my-server-launcher.jar' | grep -v grep | awk '{print $2}'` 
         if [ ! -z "$PID" ]; then
         kill -3 $PID

fi
         if [ $? -ne 0 ]
         then
            echo "Failed to dump youservice."
            exit 1
         else
            echo "Dumped youservice."
        fi
         ;;
      *)  
        echo "Usage: youservice { console | start | stop | restart | status | dump }"
    esac

3)执行 hkconfig youservice on   将服务加入启动

kconfig -a youservice on

服务脚本修改后,最好执行一下 systemctl --system daemon-reload 可能是用来刷新的

时隔两年最近再次折腾opensuse 的一些笔记 - opensuse linux java service shell的更多相关文章

  1. 时隔3年,再次折腾BlackBerry 8830!

    2010年手头换得8830,之后就是好几番刷机.解SPC.倒腾各种软件..算软件注册码..那个时候记得最难弄的注册码就是crunchSMS.需要运行虚拟机来从内存地址读取注册码..不过黑莓真的很经得起 ...

  2. 安装opensuse的笔记-重庆linux开源组织

    mate: 伙伴 matey: 融洽的, 易于亲近的. get matey with sb. poison: a. 有毒的, n.毒药/毒酒v. 下毒, 破坏, 污染 slander [ 撕烂的~~] ...

  3. Java执行shell脚本并返回结果两种方法的完整代码

    Java执行shell脚本并返回结果两种方法的完整代码 简单的是直接传入String字符串,这种不能执行echo 或者需要调用其他进程的命令(比如调用postfix发送邮件命令就不起作用) 执行复杂的 ...

  4. 2019.11.13课堂实验之用Linux下的shell脚本完成两文本交替输出

    有两个文本如下,实际中并不知道两文本各有多少行: 文本1.txt aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ccccccccccccccccccccccccccc ...

  5. 时隔两个月再写的Echarts(Enterprise Charts,商业级数据图表)一文

    简介 ECharts,缩写来自Enterprise Charts,商业级数据图表,一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE6/7/8/9/10 ...

  6. 简单的两数之和再次乱入<< Add Two Numbers >>

    请看题目描述: You are given two linked lists representing two non-negative numbers. The digits are stored ...

  7. android:首页点击返回键,两秒内再次点击退出系统

    //记录用户首次点击返回键的时间 private long firstTime = 0; /** * 通过监听keyUp 实现双击返回键退出程序 * @param keyCode * @param e ...

  8. 时隔两天,三星再称GalaxyFold已准备就绪,王自如的脸还好吗?

    编辑 | 禾斗 出品 | 于见(mpyujian) 据消息人士透露,三星已经完成对其有缺陷的折叠智能手机进行了重新设计,Galaxy Fold准备适时再度推出,但问题是,作为消费者,我们准备好了吗? ...

  9. 无U盘安装Linux openSUSE(通过硬盘安装Linux)

    一.说明 为什么会想着用硬盘安装Linux?只是因为我陆陆续续买了两个U盘,然后它们都丢了,就没再买了.然而现在又想装个openSUSE,没有U盘,只能想办法通过硬盘安装. 记录自己走过的弯路,同时也 ...

随机推荐

  1. HTTP的GET/POST细节

    HTTP的GET/POST方式有何区别?这是一个老生常谈的问题,但老生常谈的问题往往有一些让人误解的结论.本文将带您浅尝HTTP协议,在了 解HTTP协议的同时将会展示许多被人们忽视的内容.在掌握了H ...

  2. 在HttpClient请求的时候,返回结果解析时出现java.io.IOException: Attempted read from closed stream. 异常,解决

    原因是EntityUtils.toString(HttpEntity)方法被使用了多次.所以每个方法内只能使用一次.

  3. struts2下s:iterator取不出值

    1:问题起因:通过action方法连接数据库取出Arraylist集合,在前台页面遍历显示无数据,用s:debug查看 stack里有值,用了各种方法,包括session传值,但是仍然取不出来. 2: ...

  4. 根据日期 读取三个csv不留指定日期的内容 新保存一个文件

    using System;using System.Collections.Generic;using System.Drawing;using System.Globalization;using ...

  5. C#去掉list集合中的重复数据

    List<string> conList= new List<string>(); List<string> listII = new List<string ...

  6. ORACLE 10进制与16进制的互相转换

    1. 10---->16 使用to_char(10,'xxx')函数,如果位数长,多加几个 x 2. 16---->10 使用to_number(’a','xxx')函数,如果位数长,多加 ...

  7. 通过反射向将EF的实体映射配置加入到实体模型中

    public AdminDbContext() : base("MemberDbContext") { //不使用代理创建导航属性,避免WCF序列化错误 Configuration ...

  8. Java NIO教程 Channel

    Channel是一个连接到数据源的通道.程序不能直接用Channel中的数据,必须让Channel与BtyeBuffer交互数据,才能使用Buffer中的数据. 我们用FileChannel作为引子, ...

  9. udp-->socket通信原理

    UDP数据通讯原理     UDP数据通讯分服务端(软件)和客户端端:     服务端(软件)(服务器)先运行,服务端,不需要事先知道客户端IP和port     客户端(软件)(客户端机器)后运行, ...

  10. C#与时间有关的一些方法

    stopWatch  var stopWatch = new StopWatch();   //创建一个Stopwatch实例 stopWatch.Start();   //开始计时 stopWatc ...