CentOS7系统另一种后台运行服务的方式

最近,在一台系统为CentOS7的服务器上安装了一个rundeck服务,直接使用rundeckd start命令启动后,当退出终端时,该进程总是会被kill掉。在网上百度 and 谷歌了一番,得出一个结论,处理这种问题的常用方式一般是以下几种方式:

1、nohup command &;
2、setid
3、screen

然并卵,以上三种方式中1和2都尝试了,没什么效果,第3种方式较为复杂果断放弃。

然而,奇迹总是在不经意间发生的。不知怎么的就突然想起了systemd。于是我给该服务配置了一个service,内容如下:

$ cat rundeck.service 
[Unit]
Description=serviceName_description
After=syslog.target network.target

[Service]
User=root
Type=forking
PIDFile=/opt/rundeck/var/run/rundeckd.pid
ExecStart=/etc/systemd/system/rundeck.sh
ExecStop=kill -s TERM $MAINPID
#Restart=always
#RestartSec=20s

[Install]
WantedBy=multi-user.target

保存退出后启动该service

$ systemctl enable rundeck.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/rundeck.service to /etc/systemd/system/rundeck.service.
$ systemctl list-unit-files |grep rundeck
rundeck.service                               enabled 
$ systemctl daemon-reload
$ systemctl status rundeck.service

然后,尝试退出终端几次,发现问题得以解决。该进程终于不再因终端退出而被kill了。

你可能感兴趣的:(运维,CentOS)