nohup
我通常使用如下方法在 CentOS 机器上运行我的 Java 服务:
nohup java -jar myapp-0.0.1-SNAPSHOT.jar server my-configure.yml > outfile &
但是,如果服务器重新启动,服务将不会自行重新启动。CentOS 中是否有自动方式在启动时启动此 Java 服务?
答案1
将脚本复制到/etc/rc.d/rc.local
,重新启动,它将在启动时运行。例如
[vagrant@localhost ~]$ cat /etc/rc.d/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
sudo touch /tmp/helloworld
创建/tmp/helloworld系统重新启动后的文件:
[vagrant@localhost ~]$ ls /tmp/
helloworld
The /etc/rc.d/rc.local script is executed by the init command at boot time or when changing runlevels. Adding commands to the bottom of this script is an easy way to perform necessary tasks like starting special services or initialize devices without writing complex initialization scripts in the /etc/rc.d/init.d/ directory and creating symbolic links.
The /etc/rc.serial script is used if serial ports must be setup at boot time. This script runs setserial commands to configure the system's serial ports. Refer to the setserial man page for more information.