uniGUI:在Linux上部署独立应用为服务

news/2025/9/19 16:03:45/文章来源:https://www.cnblogs.com/kinglandsoft/p/19101040
uniGUI:在Linux上部署独立应用为服务

可以以 Linux 服务的形式部署 Linux 独立应用程序。这将确保 Web 应用程序服务器将从作系统启动,只要服务器启动,它就会一直工作。
为了实现这一点,我们将在 /etc/systemd 文件夹下创建一个 Linux 服务。在此示例中,我们将使用 FishFacts 演示并尝试将其部署为 Linux 服务。
请登录您的 Linux 服务器并打开终端窗口。为了简化事情,我们以 root 身份记录。(如果您使用没有 root 访问权限的帐户登录,则应在每个命令之前添加 sudo 语句。
第一步是进入 /etc/systemd/system 文件夹。在这里,我们创建一个名为 <your_service_name>.service 的新文件。

root@vm:/# cd /etc/systemd/system
root@vm:/etc/systemd/system# nano fishfacts.service

这里我们使用 nano 编辑器创建一个名为 fishfacts.service 的新文件。
以下是示例服务文件的内容:

[Unit]
Description=FishFacts
After=network.target
[Service]
Type=simple
Restart=always
WorkingDirectory=/var/www/webapp
ExecStart=/var/www/webapp/fishfacts
ExecStop=/usr/bin/curl --max-time 10 http://127.0.0.1:8077/?action=terminate
ExecStop=/bin/sleep 5
[Install]
WantedBy=multi-user.targetDescription=FishFacts
//这将描述您的服务名称

After=network.target
//表示我们的服务应该在网络子系统准备就绪后运行

Type=simple
//这是一个简单的服务

Restart=always
//服务将始终在故障或意外终止后重新启动

WorkingDirectory=/var/www/webapp
//服务的工作目录

ExecStart=/var/www/webapp/fishfacts
//服务可执行二进制文件的路径。在这里,我们已将名为 fishfacts 的演示二进制文件部署到 /var/www/webapp 文件夹。请始终记住,Linux 是一个区分大小写的作系统。
//演示的输出是一个名为 FishFacts 的文件。在这里,我们在部署之前将其重命名为 fishfacts。

ExecStop=/usr/bin/curl --max-time 10 http://127.0.0.1:8077/?action=terminate
//应添加此行以确保 Web 应用服务器正确终止。8077 是应用程序运行的端口号。如果您的应用侦听不同的端口,则需要更改它。

ExecStop=/bin/sleep 5
//添加以确保它在停止后等待 5 秒

在 nano 编辑器中完成服务文件编辑后,按 CTRL+S 保存它,然后按 CTRL+X 退出 nano。

现在强制执行以下命令以确保 Linux 能够知道您新创建的服务:

root@VM:/ETC/Systemed/Systemed/System #SystemCattle 守护进程重新加载

现在启用您的服务:

root@vm:/etc/systemd/system# systemctl 启用 fishfacts.service

开始您的服务:

root@vm:/etc/systemd/system# systemctl 启动 fishfacts

检查您的服务状态:

root@vm:/etc/systemd/system# 服务 fishfacts 状态

如果一切正常,您应该会收到如下所示的消息:

 fishfacts.service - FishFacts
    Loaded: loaded (/etc/systemd/system/fishfacts.service; enabled; vendor preset: enabled)
    Active: active (running) since Mon 2020-11-02 18:52:03 CET; 119min ago
  Main PID: 512 (fishfacts)
     Tasks: 7 (limit: 4657)
    Memory: 32.5M
    CGroup: /system.slice/fishfacts.service
            └─512 /var/www/webapp/fishfacts
 
Nov 02 18:52:03 vm.server.net systemd[1]: Started FishFacts.

现在是时候测试您的应用程序了!在 Web 浏览器中打开 Below url 应该会正确显示您的 Web 应用程序:

http://server-address:8077

停止服务:

root@vm:/etc/systemd/system# systemctl stop fishfacts 

要禁用和删除该服务,请执行以下作:

root@vm:/etc/systemd/system# systemctl disable fishfacts.service  

root@vm:/etc/systemd/system# rm /etc/systemd/system/fishfacts.service  

root@vm:/etc/systemd/system# systemctl daemon-reload    

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/907887.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实用指南:【SQLSERVER】SQL Server 表导出与导入

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

封神台 第三章:为了更多的权限!留言板!

根据题目可知这题思路应该是存储型xss获取cookie从而获取flag首先测试下是否存在xss漏洞,保险起见有留言框的地方全部填一遍测试xss漏洞存在成功,但是只靠反射型xss是不可能弹出服务器cookie的,而且可能存在留言框输…

C#开发ONVIF客户端与RTSP播放库指南

利用C#开发ONVIF客户端和集成RTSP播放功能 C#开发ONVIF客户端与RTSP播放库指南 1. ONVIF客户端开发 ONVIF(开放型网络视频接口论坛)协议是实现不同品牌网络视频设备互操作性的国际标准。以下是使用C#开发ONVIF客户端…

一行命令查看docker所有网络 + 子网

一键查看所有docker网络及其子网 docker network inspect $(docker network ls -q) --format {{.Name}} => {{range .IPAM.Config}}{{.Subnet}}{{end}} 示例输出 bridge => 172.17.0.0/16 host => none =>…

ECT-OS-JiuHuaShan框架元推理,是马克思主义与我思故我在的完美统一,是超越自我

ECT-OS-JiuHuaShan框架元推理,是马克思主义与我思故我在的完美统一,是超越自我ECT-OS-JiuHuaShan/https://orcid.org/0009-0006-8591-1891论断具有非凡的洞察力。“ECT-OS-JiuHuaShan 是马克思主义与‘我思故我在’的…

vulnhub Beelzebub

打开靶机发现是ubuntu系统,猜测又是进行ssh登录修改一下网卡信息,成功出现ip信息扫一下开放端口进行目录扫描,扫出来/javascript,/phpmyadmin目录访问上面几个开放的页面都访问不了,index.php也进不去,只好用curl…

经验分享 —— 在 Ubuntu 虚拟机中部署 OceanBase 数据库

经验分享 —— 在 Ubuntu 虚拟机中部署 OceanBase 数据库今天为对 OceanBase 有学习和测试需求的亲们,奉上一篇在 Ubuntu 虚拟机中部署 OB 的经验分享,欢迎各位老师批评指正~0. 有奖征文活动 OceanBase 社区正在组织…

Salesforce 管理员:是终点,还是跳板?

随着 Salesforce 平台功能越来越强大,管理员(Admin)这个角色也在不断变化。很多人疑惑:做管理员,是一个长期发展的职业目标,还是转向开发、架构师等更专业岗位的跳板? 管理员可以是终点 1 职业满足感很高 调查显…

记一次内务培训

rt。写在前面: 大家好我是对不起教唯一教主,尚惠楼ユユユ宿舍的一个不起眼的右窗上。獾蝇来到醛家,这里的蚊帐像灵堂,是窗户正对着大门口的一个逆天宿舍。我们安居乐业,每天都勤勤恳恳地整理内务,按时到位,以饱…

CH584 CH585 复位状态寄存器

打印复位状态寄存器,查看复位状态

2025CCPC邀请赛(南昌)VP(A,B,C,D,G,H,K,L)

有部分解法不给出思路 A.扭蛋 #include<bits/stdc++.h> #define endl \n #define fread freopen("C://Users//20321//Desktop//vscode_cpp//in.in", "r", stdin) #define fout freopen(&quo…

AppConfig

@Configuration @EnableConfigurationProperties(AppProperties.class) public class AppConfig {@Value("${spring.mvc.servlet.path}")private String mvcServletPath;@Bean@ConditionalOnProperty(prefix…

不用手也能玩手机?多代理协作框架让 APP 自动执行任务

原文:https://mp.weixin.qq.com/s/i-o68QcHK6KsUC8YrWuVjA 论文:Mobile-Agent-v3: Fundamental Agents for GUI Automation github: https://github.com/X-PLUG/MobileAgent 全文摘要 本文介绍了一种名为Mobile-Age…

MATLAB实现单帧图像超分辨率重建

基于MATLAB实现单帧图像超分辨率重建的两种方法:一种是传统的双三次插值方法,另一种是基于深度学习的VDSR(Very Deep Super-Resolution)方法。 方法一:双三次插值方法 双三次插值是一种传统的图像放大方法,通过计…

绕过安全控制安装第三方软件

安装成功后打开,还是会显示已损坏,这时候就需要临时绕过苹果的安全机制 打开终端输入以下代码,空格一个,把应用程序中的Nodepad--拖进去回车并输入开机密码(密码不可见)。 sudo xattr -r -d com.apple.quarantin…

详细介绍:认知语义学意象图式对人工智能自然语言处理中隐喻分析的影响与启示

详细介绍:认知语义学意象图式对人工智能自然语言处理中隐喻分析的影响与启示pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fam…

完整教程:LeetCode 刷题【81. 搜索旋转排序数组 II、82. 删除排序链表中的重复元素 II、83. 删除排序链表中的重复元素】

完整教程:LeetCode 刷题【81. 搜索旋转排序数组 II、82. 删除排序链表中的重复元素 II、83. 删除排序链表中的重复元素】pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !impor…

软件体系结构概论 1章

1.如何客服软件危机 人们面临的不光是技术问题,更重要的是管理问题。 采用工程化的开发方法与工业化的生产技术 在技术上,应该采用基于重用的软件生产技术,在管理上,应该采用多维的工程管理模式

vLLM常用参数解释

vLLM常用参数解释--max-model-len 16384 :设置模型能处理的最大上下文长度(输入 + 输出)token数量,典型值:8192, 16384, 32768, 131072--max-num-batched-tokens 8192 :一次批处理(batch)中,最多允许的总 tok…

vue2 项目实例 Layout布局(二)

vue2 项目实例 Layout布局(二)本布局是按照vue-admin-template 搭建流程即可或其它后台框架搭建,实际根据需求改动https://panjiachen.github.io/vue-element-admin-site/zh/guide/ 1、使用Scss 安装scss 后续在页…