我正在try 将linux可执行文件作为服务

我像下面这样执行我的程序

java -jar mytestprogram.jar

创建一个连续运行并服务REST请求的进程.但我想把它作为一项服务来运行

service mytestprogram start
service mytestprogram stop
service mytestprogram status
chkconfig mytestprogram on

等等,最简单的方法是什么?

推荐答案

这取决于你的系统经理

在debian/ubuntu上实现这一点最常见的方法是构建一个initscript并将其放入/etc/init.d/etc/rc/init.d中,然后在其中放入一个名为mytestprogram的脚本.

这是一个初始化脚本示例:

#!/bin/sh
### BEGIN INIT INFO
# Provides:          testone
# Required-Start:    $local_fs
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# X-Interactive:     false
# Short-Description: Example init script
# Description:       Start/stop an example script
### END INIT INFO

DESC="test script"
NAME=testone
#DAEMON=

do_start()
{
   echo "starting!";
}

do_stop()
{
   echo "stopping!"
}


case "$1" in
   start)
     do_start
     ;;
   stop)
     do_stop
     ;;
esac

exit 0

我建议您查看该目录中的一些脚本,如果您稍微了解bash,这很简单;)

Linux相关问答推荐

在PowerShell for Linux上,打印出的maven命令还有其他字符

在c++编译期间,什么是linux命令,它给出了链接库的路径?

如何在 shell 脚本中自定义 SFTP 详细输出

Bash:将带有新行的字符串转换为带有逗号、内联的唯一值的字符串

如何使用适用于 Linux 的 Dockerized SQL Server 设置 MSDTC

如何使用 sed 和 awk 命令提取模式?

RabbitMQ 安装后没有自动启动

如何为命令的所有选项启用无密码 sudo?

x86_64 Linux 程序集中的逻辑与实现

在 Windows 上通过 SSH 运行 django 应用程序

有什么方法可以知道在发送之前将在 TCP 上发送多少字节?

增加 mysql docker 中的 max_allowed_pa​​cket 大小

从 shell 将多个 .sql 转储文件导入 mysql 数据库

NGINX:connect() 到 unix:/var/run/php7.0-fpm.sock 失败(2:没有这样的文件或目录)

为什么`du`的输出通常与`du -b`如此不同

在 Linux 中,名称与正则表达式匹配的文件的磁盘使用情况?

linux perf:如何解释和查找热点

UNIX `time` 命令对于基准测试是否足够准确?

Bash:在文件中的特定位置插入一行

Linux下Eclipse在哪里找eclipse.ini