位置: 编程技术 - 正文

在Linux系统中创建和修改systemd单元文件(在linux系统中创建用户账户)

编辑:rootadmin

推荐整理分享在Linux系统中创建和修改systemd单元文件(在linux系统中创建用户账户),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:在linux系统中创建目录,在linux系统中创建用户ftp,在linux系统中创建目录,在linux系统中创建目录,在linux系统中创建用户ftp,在linux系统中创建文件,在linux系统中创建一个新用户,在linux系统中创建目录,内容如对您有帮助,希望把文章链接给更多的朋友!

(1)单元文件概述

单元文件包含单元的指令和行为信息。在后台systemctl命令和单元文件一起工作。为了出色而正确的完成工作,系统管理员必须能够手工编辑单元文件。一般系统管理员手工创建的单元文件建议存放在/etc/systemd/system/目录下面。单元配置文件的格式是:复制代码代码如下: unit_name.type_extension

这里的unit_name代表单元名称,type_extension代表单元类型。单元文件可以作为附加的文件放置到一个目录下面,比如为了定制sshd.service服务,可以创建sshd.service.d/custom.conf文件,在文件中做一些自定义的配置。同样的,可以创建sshd.service.wants/和sshd.service.requires/目录。这些目录包含sshd服务关联服务的软连接,在系统安装的时候,这些软连接或自动创建,也可以手工创建软连接。许多单元配置文件可以使用单元说明符--通配的字符串,可以在单元文件被引导的时候动态的被变量替换。这使创建一些通用的单元配置模版成为可能。

(2)理解单元文件结构

典型的单元文件包含三节:[Unit]节,包含不依赖单元类型的一般选项,这些选型提供单元描述,知道单元行为,配置单元和其他单元的依赖性。[unittype]节,如果单元有特定的类型指令,在unittype节这些指令被组织在一起。举个例子,服务单元文件包含[Service]节,里面有经常使用的服务配置。[Install]节,包含systemctlenable或者disable的命令安装信息。1)[Unit]节选项Description单元描述信息,这些文字信息在systemclstatus命令是会输出。Documentation单元文档信息的URLs。After定义在那些单元之后启动,本单元只在制定的单元启动之后启动,不像Requires选项,After选项不明确激活特定的单元,Before选项则是有相反的功能。Requires配置单元的依赖性,在Requires选项中的单元需要一起被激活,如果有一个单元启动失败,其他单元都不会被启动。Wants比Requires选项依赖性要弱很多,如果列表之中的的单元启动失败,不会对其他单元造成影响,这是推荐的建立自定义单元依赖性的方式。Conflicts定义单元冲突关系,和Requires相反。2)[unittype]类型是[Service]时的选项Type配置单元进程在启动时候的类型,影响执行和关联选项的功能,可选的关键字是:simple默认值,进程和服务的主进程一起启动;forking进程作为服务主进程的一个子进程启动,父进程在完全启动之后退出。oneshot同simple相似,但是进程在启动单元之后随之退出。dbus同simple相似,但是随着单元启动后只有主进程得到D-BUS名字。notify同simple相似,但是随着单元启动之后,一个主要信息被sd_notify()函数送出。idle同simple相似,实际执行进程的二进制程序会被延缓直到所有的单元的任务完成,主要是避免服务状态和shell混合输出。ExecStart指定启动单元的命令或者脚本,ExecStartPre和ExecStartPost节指定在ExecStart之前或者之后用户自定义执行的脚本。Type=oneshot允许指定多个希望顺序执行的用户自定义命令。ExecStop指定单元停止时执行的命令或者脚本。ExecReload指定单元重新加载是执行的命令或者脚本。Restart这个选项如果被允许,服务重启的时候进程会退出,会通过systemctl命令执行清除并重启的操作。RemainAfterExit如果设置这个选择为真,服务会被认为是在激活状态,即使所以的进程已经退出,默认的值为假,这个选项只有在Type=oneshot时需要被配置。3)[Install]节选项Alias为单元提供一个空间分离的附加名字。RequiredBy单元被允许运行需要的一系列依赖单元,RequiredBy列表从Require获得依赖信息。WantBy单元被允许运行需要的弱依赖性单元,Wantby从Want列表获得依赖信息。Also指出和单元一起安装或者被协助的单元。DefaultInstance实例单元的限制,这个选项指定如果单元被允许运行默认的实例。4)一个postfix服务的例子:单元文件位于/usr/lib/systemd/system/postifix.service,内容如下:复制代码代码如下: [Unit]Description=PostfixMailTransportAgentAfter=syslog.targetnetwork.targetConflicts=sendmail.serviceexim.service[Service]Type=forkingPIDFile=/var/spool/postfix/pid/master.pidEnvironmentFile=-/etc/sysconfig/networkExecStartPre=-/usr/libexec/postfix/aliasesdbExecStartPre=-/usr/libexec/postfix/chroot-updateExecStart=/usr/sbin/postfixstartExecReload=/usr/sbin/postfixreloadExecStop=/usr/sbin/postfixstop[Install]WantedBy=multi-user.target

(3)创建自定义的单元文件

以下几种场景需要自定义单元文件:希望自己创建守护进程;为现有的服务创建第二个实例;引入SysV init脚本。另外一方面,有时候需要修改已有的单元文件。下面介绍创建单元文件的步骤:1)准备自定义服务的执行文件。可执行文件可以是脚本,也可以是软件提供者的的程序,如果需要,为自定义服务的主进程准备一个PID文件,一保证PID保持不变。另外还可能需要的配置环境变量的脚本,确保所以脚本都有可执行属性并且不需要交互。2)在/etc/systemd/system/目录创建单元文件,并且保证只能被root用户编辑:复制代码代码如下: touch/etc/systemd/system/name.servicechmod/etc/systemd/system/name.service

文件不需要执行权限。3)打开name.service文件,添加服务配置,各种变量如何配置视所添加的服务类型而定,下面是一个依赖网络服务的配置例子:复制代码代码如下: [Unit]Description=service_descriptionAfter=network.target[Service]ExecStart=path_to_executableType=forkingPIDFile=path_to_pidfile[Install]WantedBy=default.target

4)通知systemd有个新服务添加:复制代码代码如下: systemctldaemon-reloadsystemctlstartname.service

(4)创建emacs.service例子:

1)创建文件,并确保正确权限: 复制代码代码如下: ~]#touch/etc/systemd/system/emacs.service~]#chmod/etc/systemd/system/emacs.service

2)添加配置信息: 复制代码代码如下: [Unit]Description=Emacs:theextensible,self-documentingtexteditor[Service]Type=forkingExecStart=/usr/bin/emacs--daemonExecStop=/usr/bin/emacsclient--eval"(kill-emacs)"Environment=SSH_AUTH_SOCK=%t/keyring/sshRestart=always[Install]WantedBy=default.target

3)通知systemd并开启服务: 复制代码代码如下: ~]#systemctldaemon-reload~]#systemctlstartemacs.service

(5)创建第二个sshd服务的例子

1)拷贝sshd_config文件 复制代码代码如下: ]#cp/etc/ssh/sshd{,-second}_config

2)编辑sshd-second_config文件,添加的端口,和PID文件: 复制代码代码如下: PortPidFile/var/run/sshd-second.pid

在Linux系统中创建和修改systemd单元文件(在linux系统中创建用户账户)

如果还需要修改其他参数,请阅读帮助。3)拷贝单元文件: 复制代码代码如下: ~]#cp/usr/lib/systemd/system/sshd{,-second}.service

4)编辑单元文件sshd-second.service修改描述字段复制代码代码如下: Description=OpenSSHserversecondinstancedaemon 添加sshd.service服务在After关键字之后:复制代码代码如下: After=syslog.targetnetwork.targetauditd.servicesshd.service 移除sshdkey创建:复制代码代码如下: ExecStartPre=/usr/sbin/sshd-keygen

移除这一行在执行脚本里,添加第二sshd服务的配置文件:复制代码代码如下: ExecStart=/usr/sbin/sshd-D-f/etc/ssh/sshd-second_config$OPTIONS 修改后的sshd-second.service文件内容如下: 复制代码代码如下: [Unit]Description=OpenSSHserversecondinstancedaemonAfter=syslog.target network.targe tauditd.service sshd.service[Service]EnvironmentFile=/etc/sysconfig/sshdExecStart=/usr/sbin/sshd -D -f /etc/ssh/sshd-second_config$OPTIONSExecReload=/bin/kill -HUP $MAINPIDKillMode=processRestart=on-failureRestartSec=s[Install]WantedBy=multi-user.target

5)如果使用SELinux,添加tcp端口,负责第二sshd服务的端口就会被拒绝绑定: 复制代码代码如下: ~]#semanage port -a -tssh_port_t -p tcp

6)设置开机启动并测试:复制代码代码如下: ~]#systemctl enable sshd-second.service~]$ssh -p user@server

确保防火墙端口也开放。

(6)修改已经存在的单元文件

systemd单元配置文件默认保存在/usr/lib/systemd/system/目录,系统管理员不建议直接修改这个目录下的文件,自定义的文件在/etc/systemd/system/目录下,如果有扩展的需求,可以使用以下方案:创建一个目录/etc/systemd/system/unit.d/,这个是最推荐的一种方式,可以参考初始的单元文件,通过附件配置文件来扩展默认的配置,对默认单元文件的升级会被自动升级和应用。从/usr/lib/systemd/system/拷贝一份原始配置文件到/etc/systemd/system/,然后修改。复制的版本会覆盖原始配置,这种方式不能增加附件的配置包,用于不需要附加功能的场景。如果需要恢复到默认的配置文件,只需要删除/etc/systemd/system/下的配置文件就可以了,不需要重启机器,使用如下命令应用改变就可以:复制代码代码如下: systemctl daemon-reload

daemon-reload选项重新加载所以单元文件并重新创建依赖书,在需要立即应用单元文件改变的时候使用。另外,也可以使用下面的命令达到同样的目的: 复制代码代码如下: init q

还有,如果修改的是一个正在运行服务的单元文件,服务需要被重启下:复制代码代码如下: systemct lrestart name.service

(7)扩展默认单元配置文件配置

为了扩展默认的单元文件配置,需要先在/etc/systemd/system/下创建一个目录,用root执行类似下面的命令: 复制代码代码如下: mkdir/etc/systemd/system/name.service.d

在刚才创建的目录之下创建配置文件,必须以.conf文件结尾。例如创建一个自定义的依赖文件,内容如下: 复制代码代码如下: [Unit]Requires=new_dependencyAfter=new_dependency

另外一个例子,可以配置重启的时候,在主进程退出后秒在重启,配置例子如下:复制代码代码如下: [Service]Restart=alwaysRestartSec=

推荐每次只产生一个小文件,每个文件只聚焦完善一个功能,这样配置文件很容易被移除或者链接到其他服务对的配置目录中。为了应用刚才的修改,使用root执行以下操作: 复制代码代码如下: systemctldaemon-reloadsystemctlrestartname.service

例子:扩展httpd.service服务配置为了是httpd服务启动的时候执行用户自定义的脚本,需要修改httpd的单元配置文件,执行以下几步操作,首先创建一个自定义文件的目录及自定义文件: 复制代码代码如下: ~]#mkdir/etc/systemd/system/httpd.service.d~]#touch/etc/systemd/system/httpd.service.d/custom_script.conf

假设自定义文件位置在/usr/local/bin/custom.sh,将这个信息添加到custom_script.conf自定义脚本中:复制代码代码如下: [Service]ExecStartPost=/usr/local/bin/custom.sh

应用更改:复制代码代码如下: ~]#systemctldaemon-reload~]#systemctlrestarthttpd.service

将Linux中systemd的单元配置实例化的方法 在运行的时候有可能需要将一个模版实例化好几个单元,@字符用于标识模版和单元文件的关系,实例化单元可以从另外一个单元文件(使用Requires或者Wa

Linux系统下VNC SERVER的相关配置 安装:复制代码代码如下:yuminstalltigervnc-server配置:(1)复制配置文件:复制代码代码如下:~]#cpa/lib/systemd/system/vncserver@.service/aa/etc/systemd/system/vncserver@.

在Linux中使用unixbench来测试测试系统性能 unixbench是什么?unixbench是一套unix系统基准测试套件。unixbench的设计目标是为类unix系统提供一套基本的指标,所以有许多项目测试系统各方面的性能。各

标签: 在linux系统中创建用户账户

本文链接地址:https://www.jiuchutong.com/biancheng/365493.html 转载请保留说明!

上一篇:辨别Linux系统rpm和yum工具的方法(容易混)(linux查看rpm是否安装)

下一篇:将Linux中systemd的单元配置实例化的方法

  • 最新个税手续费返还会计分录小规模纳税人
  • 沥青混凝土可以放多久
  • 车辆通行费属于政府性基金吗
  • 广告制作赚钱吗?
  • 新会计准则下接会计科目
  • 企业名称变更需要重新核名吗
  • 企业内部商品转移怎么核算
  • 收到别的公司的转账支票
  • 物业公司转售电费怎么开票
  • 对公账户进账是否缴税
  • 库存商品检验合格标准
  • 生产部门的费用计入什么科目
  • 出口商品一定要有条形码吗
  • 物业费收入的增值税税率是多少
  • 付款申请需要附什么依据
  • 开了发票一定要确认收入吗
  • 专用发票不抵扣联可以当普票用吗?
  • 银行承兑汇票开票流程图
  • 车辆保险分期分摊怎么做账?
  • 制造成本包括哪几项
  • 鸿蒙系统支持第三方相机吗
  • 最高跑分纪录的显卡是什么
  • 怎么理解php语言
  • php返回数据给ajax
  • 第一章 使用layui的表格和表单
  • python编程自动化框架怎么搭建
  • 减资资产负债表怎么填
  • 应纳税所得额调整金额怎么算
  • 小规模工程服务开票几个点
  • 企业所得税品目应纳税所得额未申报
  • 其他收益在利润表填在哪里
  • 三个数排序c语言程序从大到小
  • 税收筹划类型有哪几种
  • 报销人和收款人不一致钱打到哪个账户
  • 小规模纳税人劳保用品可以抵扣吗
  • 电子回单可以入档案吗
  • 建设工程合同从完成承包的内容进行划分
  • 股权转让个人所得税怎么算
  • 当事人对付款时间没有约定或者约定不明的
  • 收到返还工会经费大于管理费用
  • 可供分配利润包括哪些
  • 农民农作物补偿标准文件
  • 购买无形资产的手续费计入
  • 固定资产为什么要提减值准备
  • 损益类账户属于资产还是负债
  • 月末结转后应交税费应交增值税一般无余额
  • 建筑服务红字发票需要填写备注吗
  • 建筑业外包工程包括哪些
  • 公司注册实收资本
  • 个税手续费返还奖励财务人员的文件
  • 公交卡充值发票怎么开
  • 物业公司代业主委员会收公共收益怎么开发票
  • 新手会计做账怎么做账
  • sql忽略null
  • mysql开发教程
  • win10系统详情
  • windows xp运行
  • windows自动操作软件
  • Windows 2008R2 HyperV下安装CentOS6,网卡无痛设置
  • 电脑bios启动项设置中文
  • windows七如何连接网络
  • Ubuntu Linux 7.04QQ、MSN 安装和使用方法
  • Linux系统中的pycharm怎么打开
  • linux的sbin
  • window系统桌面
  • win10回收站文件在哪里
  • neotrace.exe - neotrace是什么进程 有什么用
  • kworker进程如何解决
  • 安装samba服务器步骤
  • ES6 javascript中class类的get与set用法实例分析
  • 获取本机ip地址命令
  • shell脚本可以使用的引号
  • unity 3d场景2d角色
  • unity3d模型怎么制作
  • 深入python3
  • 不用jquery用什么
  • unity 3d 介绍
  • 开票网线属于哪一类
  • 文化事业建设税减免政策2023
  • 四川省地方税务局公告2018年第3号
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设