systemd

大象笔记 > 标签 > systemd

ubuntu 上使用 systemd 重启时自启动 redis 及 laravel queue worker

之前一直使用 supervisor 来管理进程,但是偶然发现 systemd 已经成为主流并内置于 Ubuntu,所以拿 redis 测试一下效果。 测试环境 ubuntu 18.04 ubuntu 16.04 安装 Redis 下载最新的 redis https://redis.io/download 编译安装 tar xzvf redis-4.0.10.tar.gz cd redis-4.0.10 make make test sudo make install 确认安装完成 $ which redis-cli /usr/local/bin/redis-cli redis 的配置 ...

阅读全文...

systemd 自动重启挂掉的 golang 进程

新年,运行稳定达半年的一个 golang 进程挂掉了。 报错日志显示: panic: Get "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=xxx": net/http: TLS handshake timeout 估计是春节期间微信服务器的压力太大吧。 没有太在意,手动重启了服务。 但是,半天后,又收到短信报警,服务还是挂了,还是同样的超时错误。 无法忍受了,决定配置上 systemd 自动重启挂掉进程。 配置示例 [Unit] Description=G ...

阅读全文...

systemd 保存 golang 服务日志到指定文件

需求场景 我想将 golang 打印的日志保持到指定日志文件,方便需要的时候进行查看。例如: log.Println("some log") 而默认用 systemd 管理该服务的时候,是看不到日志输出的。 systemd 应用日志配置 每次重启都重置日志文件为空,重新写入: StandardOutput=file:/var/my.log StandardError=file:/var/my.log 保留所有日志历史,每次都 append: StandardOutput=append:/var/my.log StandardError=append:/var/my_er ...

阅读全文...

生产环境部署 FastAPI + Nginx + Systemd 服务

测试开发环境 uvicorn server:app --reload 但是生产环境需要配置的项目要更多,例如: 指定端口号 如何利用多核。python 的历史问题 nginx 配置 systemd 配置 uvicorn 是什么 Uvicorn is a lightning-fast ASGI server implementation, using uvloop and httptools. 与 Gunicorn 一同使用 参考 uvicorn 及 FastAPI 的官方文档: https://www.uvicorn.org/#running-with-gunicorn https ...

阅读全文...

线上服务器配置 systemd

目标 降低操作成本。能快速线上部署,更新代码 将线上一套没有配置 systemd 的服务,加上 systemd 配置 形成配置模板。避免每次都忘记具体命令,再就是代码更新,线上重启服务,形成脚本,节省时间 模板 systemd 配置形成 vim snippet。实际上是两个,一个是 systemd 的,一个是 makefile 的。 配置文件放到项目根目录的 config 目录下。集中存放 systemd,nginx 配置文件等 相关操作命令放到 Makefile 中。例如,systemctl enable start stop 等,scp 配置文件等。 TODO [X] vim s ...

阅读全文...

systemd timer 与 crontab 的对比

在排查 certbot 不自动更新证书问题时,第一次知道 systemd timer 也能做为系统定时任务的管理工具。但是他与之前熟知的 crontab 有什么区别呢? 列举一下 systemd timer 的优势 支持微妙、毫秒、秒级的定时任务;而 crontab 只能支持到分钟级 上次任务没有执行完时,不会重复执行定时任务;而 crontab 需要手动处理单例问题 支持只执行一次的定时点的计划任务 方便的指定运行用户。 两个配置文件 每一个“.timer”文件必须有一个对应的“.service”文件存在,这样计时器才有意义。默认情况下,如果Timer和Service的文件名(不包含扩展 ...

阅读全文...