我需要在登录系统之前运行一个进程。如何像服务一样运行它?如何在 Linux 中创建服务?
在 Ubuntu 和 Fedora 中?服务是定制的tomcat
答案1
运行服务没有或之前登录到系统(即“启动时”),您将需要创建启动脚本并将其添加到启动序列中。
服务脚本由三个部分组成:启动、停止和重新启动。
服务脚本的基本结构是:
#!/bin/bash
#
RETVAL=0;
start() {
echo “Starting <Service>”
}
stop() {
echo “Stopping <Service>”
}
restart() {
stop
start
}
case “$1″ in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo $”Usage: $0 {start|stop|restart}”
exit 1
esac
exit $RETVAL
一旦你根据自己的喜好调整了脚本,只需将其放在 /etc/init.d/ 中
,并将其添加到系统服务启动进程中(在 Fedora 上,我不是 Ubuntu 用户,>D):
chkconfig -add <ServiceName>
服务将被添加到系统启动过程中,您无需再次手动启动它。
干杯!
答案2
根据 init 系统,您可以以不同的方式创建 init 脚本。 Fedora 为您提供了 upstart 和 systemd 可供选择,当然还有 SysV 兼容性。
暴发户
- 创建服务定义文件为
/etc/init/custom-tomcat.conf
放进去:
start on stopped rc RUNLEVEL=3 respawn exec /path/to/your/tomcat --and --parameters
并且您的 Tomcat 应该在系统启动时启动。
系统
- 在中创建服务定义
/etc/systemd/system/custom-tomcat.service
放进去:
[Service] ExecStart=/path/to/your/tomcat --and --parameters Restart=always [Install] WantedBy=multi-user.target
并使用 启用您的服务systemctl enable custom-tomcat.service
。每次正常启动都会启动它。
当然,这两个 init 系统还有更多的配置选项,您可以在它们的文档中查看这些选项。
答案3
Tomcat 是一项相当常见的服务,我建议您查看发行版已经提供的初始化脚本。它很可能适用于您定制的二进制文件,几乎不需要任何调整。
答案4
要在计算机启动后但用户登录之前简单地运行脚本,您可以简单地编辑脚本 /etc/rc.local ,该脚本旨在准确解决此任务。