# Linux 建立自訂 Systemd ``` [Unit] # 服務名稱 Description=Your Server # 服務相關文件 # Documentation=https://example.com # Documentation=man:nginx(8) # 設定服務啟動的先後相依姓,例如在網路啟動之後: # After=network.target [Service] # 行程類型 Type=simple # 啟動服務指令 ExecStart=/opt/your_command # 服務行程 PID(通常配合 forking 的服務使用) # PIDFile=/run/your_server.pid # 啟動服務前,執行的指令 # ExecStartPre=/opt/your_command # 啟動服務後,執行的指令 # ExecStartPost=/opt/your_command # 停止服務指令 # ExecStop=/opt/your_command # 停止服務後,執行的指令 # ExecStopPost=/opt/your_command # 重新載入服務指令 # ExecReload=/opt/your_command # 服務終止時自動重新啟動 Restart=always # 重新啟動時間格時間(預設為 100ms) # RestartSec=3s # 啟動服務逾時秒數 # TimeoutStartSec=3s # 停止服務逾時秒數 # TimeoutStopSec=3s # 執行時的工作目錄 # WorkingDirectory=/opt/your_folder # 執行服務的使用者(名稱或 ID 皆可) # User=myuser # 執行服務的群組(名稱或 ID 皆可) # User=mygroup # 環境變數設定 # Environment="VAR1=word1 word2" VAR2=word3 "VAR3=$word 5 6" # 服務輸出訊息導向設定 # StandardOutput=syslog # 服務錯誤訊息導向設定 # StandardError=syslog # 設定服務在 Syslog 中的名稱 # SyslogIdentifier=your-server [Install] WantedBy=multi-user.target ``` ## 範例 * 建立簡單自動抓取時間服務 ``` $ cat date.sh #!/bin/bash while true do date >> /tmp/date sleep 1.5 done $ chmod +x date.sh $ pwd /home/rancher $ sudo nano /etc/systemd/system/date_server.service [Unit] Description=date log Server [Service] Type=simple ExecStart=/home/rancher/date.sh Restart=always [Install] WantedBy=multi-user.target ``` * 啟動服務 ``` $ sudo systemctl daemon-reload $ sudo systemctl start date_server.service $ sudo systemctl status date_server.service $ sudo systemctl enable date_server.service $ cat /tmp/date ``` ## 參考連結 https://blog.gtwang.org/linux/linux-create-systemd-service-unit-for-python-echo-server-tutorial-examples/ ###### tags: `linux`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up