77百科网
当前位置: 首页 生活百科

打开linux子系统(使用systemd把服务装进)

时间:2023-08-04 作者: 小编 阅读量: 1 栏目名: 生活百科

Linux非常的安全、可靠,而且有一股黑黝黝的妹子味道,这说明她也是柔软的。我们希望自己的应用程序,就像是Linux的血肉一样,就像是安装在Linux的心脏里。在网络权限逐渐收紧的企业环境中,使用supervisor会给自己徒添烦恼。systemctlenablexjjdogfirstjava除了这两者,disable、stop、restart也是标配的指令。这是由于systemd默认内置了两个阈值。有了它,你的应用程序终于能够和Linux合为一体,天荒地老的伴随下去了。聚焦基础架构和Linux。

原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留此信息。

Linux非常的安全、可靠,而且有一股黑黝黝的妹子味道,这说明她也是柔软的。

把服务跑在Linux上,就像男生把女装藏在密码箱里一样让人放心,它的稳定安全可以让人安稳的睡个懒觉。

SPOF,是著名的单点问题。鉴于xjjdog非常讨厌卖弄缩写名词的特点,我把它的全称打在这里:single point of failure。

一台Linux是孤单一台Linux,所以跑在上面的服务,就会有单点问题。解决单点问题通常可以通过集群,也可以通过奢侈的影子节点来达到这个目的。

但无论怎么搞,我们都希望跑在Linux上的某个进程,能够随着Linux的启动自动启动,随着Linux的关闭自动关闭。我们希望自己的应用程序,就像是Linux的血肉一样,就像是安装在Linux的心脏里。

准备程序

很长一段时间里,我使用supervisor来做这种事情。但可惜的是,supervisor并不是Linux的预装软件,而且它是python写的,需要装一大堆依赖包。在网络权限逐渐收紧的企业环境中,使用supervisor会给自己徒添烦恼。

是的,并不是supervisor不好,只不过它太麻烦。频繁的网络权限申请让人抓狂,甚至喧宾夺主。

退而求其次,那就是systemd。

为了说明怎么使用它,我们准备一段小小的Java程序。

importcom.sun.net.httpserver.HttpContext;importcom.sun.net.httpserver.HttpServer;importjava.io.OutputStream;importjava.net.InetSocketAddress;publicclassRunner{publicstaticvoidmain(String[]args)throwsException{HttpServerserver=HttpServer.create(newInetSocketAddress(14000),0);HttpContextcontext=server.createContext("/");context.setHandler(exchange->{try{Stringresponse="Ojbk!";exchange.sendResponseHeaders(200,response.getBytes().length);OutputStreamos=exchange.getResponseBody();os.write(response.getBytes());os.close();}catch(Exceptionex){ex.printStackTrace();}});server.start();}}

这段代码将在14000端口开启一个Http服务器,每当你访问它的时候,它都会输出Ojbk!。

curlhttp://localhost:14000

把程序搞成服务

要想让上面的程序成为系统的一部分,需要将其服务化。

[Unit]Description=My First Java ServiceAfter=network.targetStartLimitIntervalSec=0[Service]Type=simpleRestart=alwaysRestartSec=1User=rootExecStart=/usr/bin/env java /opt/Runner[Install]WantedBy=multi-user.target

比较重要的就是ExecStart,它配置了你确切要执行的命令,我们这里当然是一个简单的class文件。

给这个文件起一个名字吧,比如xjjdogfirstjava.service,然后把文件扔进/etc/systemd/system/目录里。

要启动这个服务的话,直接执行下面的命令就好了。

systemctlstartxjjdogfirstjava

如果你找不到刚刚创建的服务,记得reload一下。

systemctldaemon-reload

如果你想要它随着Linux启动的话,可以执行enable创建一个链接就可以了。

systemctlenablexjjdogfirstjava

除了这两者,disable、stop、restart也是标配的指令。

注意到配置文件里有这么2行内容。

Restart=alwaysRestartSec=1

它表明,每当程序异常终止的时候,都会自动重启这个进程,重启的间隔是1秒。

更多一些的配置

我们注意到,上面的配置文件里,有After=network.target字样。它表明当MySQL启动完毕的时候,才会启动xjjdogfirstjava服务,也就是强行指定了一个依赖关系。

但很多小伙伴在使用上面配置的时候,经常发现服务自动重启几次之后,就再也不会再重启了。

等等,我们不是使用了Restart=always参数么?

这是由于systemd默认内置了两个阈值。

StartLimitBurst=5 StartLimitIntervalSec=10

当你把StartLimitIntervalSec设置成0的时候,目的就总算达到了,我们的程序可以一直一失败,一直重启下去。

虽然这样,保持一个重启间隔是一个比较好的习惯。因为大多数服务重启的时候,都会造成服务器资源的上升,如果你不想让你的服务器报警,那就不要这么压迫它。

End

这就是systemd,一个Linux内置的程序。有了它,你的应用程序终于能够和Linux合为一体,天荒地老的伴随下去了。

作者简介:小姐姐味道 (xjjdog),一个不允许程序员走弯路的公众号。聚焦基础架构和Linux。十年架构,日百亿流量,与你探讨高并发世界,给你不一样的味道。

推荐阅读:

1. 玩转Linux2. 什么味道专辑

3. 蓝牙如梦4. 杀机!5. 失联的架构师,只留下一段脚本6. 架构师写的BUG,非比寻常7. 有些程序员,本质是一群羊!

小姐姐味道 不羡鸳鸯不羡仙,一行代码调半天 346篇原创内容 -->

公众号

,
    推荐阅读
  • 单词如何从6000突破到10000(快速扩充单词量的方法竟然是它)

    学习构词法的意义是什么呢?英语中的构词法主要有三种,即转化法、合成法和派生法。现在,就和小简老师一起启程踏上探索英语构词法之旅吧!Theyareonlyallowedtosellsoftdrinksatschool.在学校里只准许他们出售不含酒精的饮料。2合成法composition由两个或两个以上的单词连在一起合成一个新词,这种构词法叫做合成法,合成的词叫做合成词。

  • 五光十色形容什么(五光十色可以形容什么)

    接下来我们就一起去研究一下吧!五光十色形容什么五光十色:形容色彩鲜艳,花样繁多,颜色光彩鲜艳多色。

  • 画眼线要准备什么东西(必须注意得小技巧)

    接下来我们就一起去了解一下吧!画眼线要准备什么东西可以准备眼线笔和眼线胶笔,眼线膏这些东西,这几种东西都可以化眼线。以上准备的这几样东西有一定的区别,比如说眼线笔眼线胶笔和眉笔差不多,在应急的时候有的人也会去使用眉笔画眼线,对于新手使用眼线笔会比较容易掌握,不过眼线笔不是很容易上色。

  • 城乡居民养老金只涨基础养老金吗(16省份城乡居民养老金上涨)

    据新华社消息,记者27日从人社部获悉,截至目前,今年全国已有16省份提高了城乡居民养老保险省级基础养老金,惠及上海、北京、西藏、浙江、江苏、广西、内蒙古、宁夏、新疆、江西、甘肃、吉林、山东、湖北、安徽、海南等地的7209万城乡老人,最高每月上涨100元。

  • 什么卡片能出三张满星卡(那是你没见到这几张卡牌)

    这张怪兽卡,卡如其名,属于突击部队,给予对方强力一击后。便会进入休息状态,守备表示一回合内无法改变为攻击状态,其守备力为0,几乎是一次性的怪兽卡。在逆风时,对方场上只要有怪兽存在,攻击力便会降至1000,典型欺软怕硬卡。

  • 70年风雨兼程70年扬帆奋进(我们的脚步是如何出炉的)

    9月26日至30日,本报连续五天推出120个版的特刊《我们的脚步》,以庆祝《北京日报》创刊70周年。本次特刊,我们部门承担《初心》8个版的内容制作。清样当晚,8个版面的清样任务主要交给杨天悦承担,实习记者夏骅配合。提前祝北京日报社70岁生日快乐!林靖梳理了当年迎接香港、澳门回归报道的一幕幕场景,字里行间抒发了中国人民万众欢腾的喜悦心情。

  • 喝蒲公英茶有什么好处(喝蒲公英茶的好处)

    喝蒲公英茶有什么好处?以下内容希望对你有帮助!蒲公英茶的功效与作用主要是清热解毒、消肿止痛、明目。可用于治疗结膜炎、乳腺炎、皮肤感染。新鲜的蒲公英口感微苦,有清热作用。蒲公英是一种非常好的清热解毒的中草药,用它泡茶可以治疗体内的热毒,无名肿毒、乳腺炎、结膜炎、皮肤感染,还能够明目去肝火。因此凡是体质偏热,容易患结膜炎、皮肤肿毒、大便黏腻的患者都可以饮用。

  • 比亚迪有多少员工? 西安比亚迪有多少员工

    截至2020年底,比亚迪拥有员工22.43万人。比亚迪研发机构:富迪电池研究所主要从事3C消费电池、动力电池和储能电池的R&D和应用。比亚迪公司简介:比亚迪股份成立于1995年,从20多人起步。2003年,它成为世界第二大充电电池制造商。同年,比亚迪汽车成立。比亚迪汽车走的是自主研发、自主生产、自主品牌的发展路线,立志打造真正物美价廉的国民车。产品设计不仅吸收了国际潮流的先进理念,也符合中国文化的审美理念。

  • 楼房白菜的储藏方法(楼房住户怎样储存白菜)

    楼房白菜的储藏方法选择背风、干燥,排水良好的地方,根据大白菜的多少,确定场地的大小。可以把菜放到楼道或没有暖气的屋内。把大白菜菜根朝里,菜叶朝外码成双排,两三天翻倒一次。气温降到-10℃时,菜要盖严,夜间苫盖要厚点,中午可通一会儿风。白菜储存时间长,有的易发生霜霉病、软腐病,有的易腐烂变质,遇到这些病菜,应及时挑出来,以免使群菜腐烂、生病。

  • 激活的iphone与安卓数据迁移(11发布后我来拆台)

    至于微信记录,也是不行的。然后罗永浩介绍了锤子的系统迁移方案。。。。▼支持联系人、照片、视频及日程的搬家,用的套路是手机对手机,实际使用过一次,还是可以的。一阵唏嘘,网上查到过有教程说安装iOS版的换机助手,但是我各种办法尝试了之后,都未果。