Centos7自啓動

Centos7自啓動

幾種方式

一、服務的方式自啓動

  • /etc/init.d下相關程序的啓動腳本
    • ln -s /etc/init.d/服務名
    • /etc/rc.d/rc3.d/S100服務名
    • //S:開機自啓動 100:啓動順序

二、systemctl

  • 系統services服務配置目錄: /etc/systemd/system
    • 一般只放系統核心基礎服務配置
  • 自定義配置目錄: /usr/lib/systemd/system/
    • 存放自定義應用註冊類服務和第三方服務類配置

1. 配置文件(XXXX.service 權限:754)

[Unit]							# 啓動順序與依賴關係
Description="run test service" 	# 服務描述
Requires=						# 強依賴關係,該服務失敗或停止,test也必須退出
Wants=redis.service       		#  test和Redis存在”弱依賴“關係,Redis啓動失敗或停止運行,不影響test
Before=
After=redis.service				# 在redis.service之後啓動 

[Service]						# 啓動行爲
Type=forking					# 優先使用forking方式: (遵循傳統Unix做法,設置PIDFile=選項,
								# 幫助systemd準確定位該服務的主進程)
								# simple(默認值):ExecStart字段啓動的進程爲主進程
								# forking:ExecStart字段將以fork()方式啓動,此時父進程將會退出,子進程將成爲主進程
								# oneshot:類似於simple,但只執行一次,Systemd 會等它執行完,才啓動其他服務
								# dbus:類似於simple,但會等待 D-Bus 信號後啓動
								# notify:類似於simple,啓動結束後會發出通知信號,然後 Systemd 再啓動其他服務
								# idle:類似於simple,但是要等到其他任務都執行完,纔會啓動該服務。一種使用場合是爲讓該服務的輸出,不與其他服務的輸出相混合
PIDFile=/var/run/app-run.pid				# 設置應用進程的PID(缺省)
User=csapal
Group=csapal
TimeoutSec=30s
RestartSec=10s
Restart=always					# no(默認值):退出後不會重啓
								# on-success:只有正常退出時(退出狀態碼爲0),纔會重啓
								# on-failure:非正常退出時(退出狀態碼非0),包括被信號終止和超時,纔會重啓
								# on-abnormal:只有被信號終止和超時,纔會重啓
								# on-abort:只有在收到沒有捕捉到的信號終止時,纔會重啓
								# on-watchdog:超時退出,纔會重啓
								# always:不管是什麼退出原因,總是重啓

Environment="/etc/csapal/systemd_env"       # 環境變量設置,可設置多個Environment=項
										    # 備註:Environment或 EnvironmentFile引用文件皆可
ExecStart=/data/auto_run.sh start			# 定義啓動進程時執行的命令或文件
ExecReload=                     			# 重啓服務時執行的命令或文件
ExecStop=                        		    # 停止服務時執行的命令或文件
DefaultTimeoutStartSec=30                   # 服務啓動允許的最大時長,超時時間(默認無單位:秒)  
                                            # 單位:"ms"(毫秒), "s"(秒), "min"(分鐘),
                                            # "h"(小時), "d"(天), "w"(周)  
Slice=csapal.slice
PrivateTmp=True						 		# 是否分配獨立的臨時空間(缺省)								

[Install]
WantedBy=multi-user.target

2. 基本操作

  • 啓動:systemctl start redis.service
  • 停止:systemctl stop redis.service
    • 停止不下來時,可以殺,systemctl kill redis.service
  • 重啓:systemctl restart redis.service
  • 查看狀態: systemctl status redis.service
  • 設置服務開機自啓動:systemctl enable redis.service
  • 禁用服務:systemctl disable redis.service
  • 屏蔽服務:ln -s ‘/dev/null’ ‘/etc/systemd/system/httpd.service’
  • 取消屏蔽服務: rm ‘/etc/systemd/system/httpd.service’
  • 列出所有運行單位:systemctl list-units
  • 列出所有可用單位: sysytemctl list-units-files
  • 列出所有失敗單元: systemctl --failed
  • 檢查是否可用:systemctl is-enabled redis.service
  • 查詢日誌: journalctl -ex redis.service

三、定時啓動腳本

crontab

參考鏈接一
參考鏈接二

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章