码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • linux-windows服务设置


    文章目录

      • 前言
      • linux中服务启动
      • windows中服务启动
      • 在linux中程序开机自启
      • windows中程序开机自启

    前言

    service(服务)和程序开机自启是两个东西。服务可以设置为开机自启,服务一直运行在后台,我们希望的是它可以提供一个服务功能。程序可以设置为开机自启,只要程序开机运行即可,至于运行后程序可以存在也可以退出。

    下面是linux和windows中服务的编写与设置,以及程序的开机启动设置。


    linux中服务启动

    在linux中,使用systemd进行服务单元的配置。配置方法可见Systemd 入门教程:实战篇。

    写配置文件,有时候会写错。严重的错误是无法启动,可以使用systemd-analyze分析下,可参考What does “Failed to execute operation: Invalid argument” mean when running systemctl enable?

    能运行,有时候并没有正常运行。可以通过journalctl查看日志,进行排查,可参考journalctl:查询 systemd 日志、如何查看systemctl启动服务的日志。

    这里有个详细到啰嗦的教程:使用用systemd处理你的守护进程

    注意,通过systemd启动的守护进程,不需要写成守护进行的形式,只需要选择type=simple即可。如果写成守护进行形式,需要type=fork。

    我写过一个server.service

    [Unit]
    Description=A server daemon for testing
    [Service]
    ExecStart=/usr/local/bin/server
    ExecStop=/bin/kill -TERM $MAINPID
    Type=simple
    [Install]
    WantedBy=multi-user.target
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • [Unit]区块通常是配置文件的第一个区块,用来定义 Unit 的元数据,以及配置与其他 Unit 的关系
    • [Install]通常是配置文件的最后一个区块,用来定义如何启动,以及是否开机启动。(WantedBy=multi-user.target – 这个通常这样设置即可)
    • [Service]区块用来 Service 的配置。可以设置启动/停止,启动方式等。

    windows中服务启动

    将一个可执行程序安装作为服务。安装的具体操作可参考用命令行加载驱动

    # 比如下面加载一个驱动的命令
    sc.exe create domain_block binpath=C:\Users\xxx\Desktop\block.sys type=kernel start=demand error=normal
    sc.exe start domain_block
    sc.exe stop domain_block
    sc.exe delete domain_block
    
    • 1
    • 2
    • 3
    • 4
    • 5

    如果需要自己编写服务程序,可以参考:windows服务编程


    在linux中程序开机自启

    如果只需要设置当前用户,将desktop文件,放入.config/autostart即可。如果是设置所有用户,放入/etc/xdg/autostart即可。

    最后的方法是,去github看一个客户端应用的开机代码,看它们是如何做到跨平台的。参考应用:略。


    windows中程序开机自启

    主要是依靠注册表。如果是普通用户,可以参考:在 Windows 10 中添加在启动时自动运行的应用、Windows设置开机自启动的三种方式

    如果是程序员,则可以调用注册表的C接口,Windows自启动技术-注册表。如果是在脚本中,可调用reg命令,可参考:使用Windows命令行reg控制注册表键值

    本质都是给下面的注册表项添加项。

    # 64位
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
    
    • 1
    • 2
    • 3
    • 4
    • 5

  • 相关阅读:
    什么是三种类型的PCB?
    二、基本类型及函数使用《2022 solidity8.+ 版本教程到实战》
    Python 利用pandas和matplotlib绘制双柱状图
    C语言:数组名和数组地址
    从零开始 Spring Boot 16:枚举
    5. Python 文件操作
    运营商sdwan优缺点及sdwan服务商优势
    Nginx监控模块
    每天温习一个JS方法之Set 第七天
    「高性能响应式 Web 开发实战」 Part I
  • 原文地址:https://blog.csdn.net/sinat_38816924/article/details/126563564
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号