前言

我们一般可以在Linux服务器上执行 dotnet <app_assembly.dll> 命令来运行我们的.net Core WebApi应用。但是这样运行起来的应用很不稳定,关闭终端窗口之后,应用也会停止运行。为了让其可以稳定运行,我们需要让它变成系统的守护进程,成为一种服务一直在系统中运行,出现异常时也能重新启动。

Linux系统有自己的守护进程管理工具 Systemd 。systemd 是内核启动后的第一个用户进程,PID 为1,是所有其它用户进程的父进程。它直接与内核交互,性能出色,可以提供用于启动、停止和管理进程的许多强大的功能。我们完全可以将程序交给 Systemd ,让系统统一管理,成为真正意义上的系统服务。

systemctl 用于管理 systemd 的行为,替换之前的 sysvinit 和 upstart。

创建服务文件

创建服务定义文件:

vim /etc/systemd/system/qf-intecabinet.service

以下是应用的一个示例服务文件:

[Unit]
Description=运行Qf.InteCabinet服务 [Service]
WorkingDirectory=/opt/InteCabinet # 依赖环境,可以指定多个
ExecStart=/usr/bin/dotnet /opt/InteCabinet/Qf.InteCabinet.WebApi.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=qf-intecabinet
User=root # 管理服务的用户,用户必须存在并且拥有正确应用文件的所有权
Environment=ASPNETCORE_ENVIRONMENT=Production # 环境变量
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false [Install]
WantedBy=multi-user.target # 该服务所在的Target

管理服务

保存该文件并启用该服务

systemctl enable qf-intecabinet.service

启动该服务

systemctl start qf-intecabinet.service

查看服务状态

systemctl status qf-intecabinet.service

查看日志

journalctl -fu qf-intecabinet.service

使用时间选项(如 --since today、--until 1 hour ago)或这些选项的组合可以减少返回的条目数

journalctl -fu qf-intecabinet.service --since "2020-01-01" --until "2020-03-01 12:00"

关闭服务

systemctl stop qf-intecabinet.service

参考资料

微软官方文档

最新文章

  1. Python subprocess.Popen communicate() 和wait()使用上的区别
  2. UVALive 7146 Defeat the Enemy(贪心+STL)(2014 Asia Shanghai Regional Contest)
  3. mongoDB研究笔记:复制集故障转移机制
  4. main(int argc,char *argv[])
  5. ios-滚动导航条页面
  6. 1084: [SCOI2005]最大子矩阵 - BZOJ
  7. Java API ——Arrays类
  8. The Tangled Web (Web之困)第四章 摘要
  9. ~/.vimrc config
  10. HDOJ/HDU 1015 Safecracker(深搜)
  11. leetcode Longest Common Prefix python
  12. Jedis中的一致性hash
  13. struts2摘抄
  14. 虚拟机创建流程中neutron代码分析(三)
  15. Zookeeper集群搭建步骤及相关知识点深入了解
  16. Java源码分析:关于 HashMap 1.8 的重大更新(转载)
  17. Python学习前期准备---第九天
  18. java生成zip压缩文件,解压缩文件
  19. centos7 与 archlinux用户 安装 python3模块 pytaglib
  20. Shell 文本处理命令

热门文章

  1. ESTScan|EORF|Augustus|nr|PSM|
  2. python学习笔记(5)数据类型-字典
  3. sqlite基础API
  4. 使json或字典输出更美观
  5. CPU时间分片、多线程、并发和并行
  6. hadoop配置文件详解、安装及相关操作补充版
  7. js中的call
  8. 設定MacOS 終端機環境 (Homebrew/zsh/oh-my-zsh/iTerm2)
  9. 刷金币全自动脚本 | 让Python每天帮你薅一个早餐钱(送源码)
  10. SIM卡的消失会让运营商们恐慌吗?