我是 systemd 的新手,想知道在部署新版本时重新启动 Web 应用程序的最佳策略是什么。
目前我在启动时启动我的服务,它只是坐在那里,但是我希望它在我更改文件时自动重新启动,因为每当我在 gitlab 上推送到 master 时,运行程序都会获取文件,编译并将其复制到正确的目录。然后我想重新启动它或关闭它,但是我不知道如何重新启动它需要 sudo。
这是我的服务文件
[Unit]
After=mongod.service
[Service]
WorkingDirectory=/var/app/mywebsite/Web
Environment="HOME=/home/stan"
Environment="DOTNET_CLI_TELEMETRY_OPTOUT=1"
Environment="DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1"
ExecStart=/usr/bin/dotnet run -c Release -p /var/app/mywebsite/Web/project.json
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
这是我的 ci 文件,更具体
before_script:
- set DOTNET_CLI_TELEMETRY_OPTOUT=1
- set DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
- set HOME=/home/stan
- cd Web
- dotnet restore
- dotnet build -c Release
- cd ..
copy:
script:
- cp -R ./* /var/app/mywebsite/ # After this I would like to restart the website service
Run Code Online (Sandbox Code Playgroud)
小智 8
如果您打算重新加载 systemd,扫描新的或更改的单元,然后添加:
sudo systemctl daemon-reload
Run Code Online (Sandbox Code Playgroud)
sudo visudogitlab-runner ALL=(ALL) NOPASSWD: /bin/systemctl restart myappsudo /bin/systemctl restart myapp,它不会提示输入密码| 归档时间: |
|
| 查看次数: |
19897 次 |
| 最近记录: |