首页 > 其他分享 >使用Systemd创建开机登录前自启动脚本服务并自动登录

使用Systemd创建开机登录前自启动脚本服务并自动登录

时间:2024-10-10 16:02:01浏览次数:8  
标签:脚本 Systemd 登录 service -- systemd getty 自启动

开机登录前自启动脚本服务

首先确定你的系统是否使用systemd来管理系统服务,在shell中输入systemctl命令来判断,有输出则为systemd系统。

进入/etc/systemd/system目录,创建myservice.service,其中myservice是你要自定义的服务名。

编辑myservice.service文件,修改其内容为:

[Unit]
Description=my service unit # 填写你的service描述
After=docker.service # 表示本服务依赖于 docker.service,即 docker.service 必须先启动,本服务才能启动。
[email protected] # 表示本服务必须在 [email protected] 启动之前启动,即在登录界面显示之前启动

[Service]
Type=forking # "forking"表示脚本执行后父进程退出,子进程在后台运行,适合daemon脚本
             # "simple"表示普通脚本
             # "oneshot"表示脚本执行后会立即退出,适合纯命令类型的脚本
ExecStart=/path/to/your_sript # 你要执行的脚本的路径
# User=root # 如果你想要脚本在登录后再执行,可以加上这一项
StandardOutput=tty # 在tty中打印脚本的标准输出
StandardError=tty # 在tty中打印脚本的error信息

[Install]
WantedBy=getty.target # 表示本服务希望被 getty.target 所依赖。getty.target 是一个目标单元,表示系统进入多用户状态

接着,执行

sudo systemctl enable myservice.service

重启后,即可生效配置。

或者

sudo sytemctl daemon-reload && sudo systemctl enable myservice.service --now

以立即使配置生效。

自动登录脚本

修改/etc/systemd/system/getty.target.wants/[email protected]或者
/etc/systemd/system/[email protected]/autologin.conf

更改ExecStart=...这一行为:

ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --autologin username - $TERM

即新增-f --autologin username这三个参数,注意这三个参数的位置,-f参数在-o ''内部。
-/sbin/agetty:指定 agetty 命令的路径。这里的 - 表示使用绝对路径,确保命令被正确找到。
-o '-p -f -- \u':设置 agetty 的选项。
-p:在终端显示提示符。
-f:强制终端进入原始模式。
--:表示命令行选项结束。
\u:显示用户名。
--noclear:在登录后不清除屏幕,保留之前的输出。
--autologin username:自动登录指定用户 username。
-$TERM:使用当前终端类型的设置。
重启以使得修改生效。

为什么已经创建了登录前自启动任务还要设置自动登录?

实测如果不设置自动登录,虽然脚本会显示成功运行,但是实际上似乎有问题,猜测可能是有部分网络相关的服务会在登录后才会启用。

标签:脚本,Systemd,登录,service,--,systemd,getty,自启动
From: https://www.cnblogs.com/lightmon5210/p/18456532

相关文章

  • 查询网站后台登录地址
    查询网站后台登录地址通常涉及对网站结构的理解以及一些技术手段的应用。以下是一些可能的方法:直接访问常见路径:许多网站使用标准的后台路径,如 /admin、/administrator、/wp-admin(WordPress)、/login、/management 等。你可以尝试直接在网站域名后面加上这些路径看是否能够访......
  • 如何登录网站后台登录
    要登录网站后台,通常需要遵循以下步骤:访问登录页面:打开浏览器并输入网站后台的登录地址。这个地址通常是网站域名加上特定的路径,例如 http://www.example.com/admin 或 http://www.example.com/login。输入用户名和密码:在登录页面上,你会看到输入框要求输入用户名(或邮......
  • 宝塔面板怎么登录终端
    宝塔面板登录终端的操作步骤如下:打开宝塔面板:在浏览器地址栏输入宝塔面板的访问地址,通常是服务器IP加上端口号(如 http://你的服务器IP:8888)。输入账号密码:输入你在安装宝塔面板时设置的用户名和密码进行登录。进入面板首页:登录成功后,你会看到宝塔面板的首页,这里......
  • 易优cms网站后台登录密码忘了怎么办?
    打开数据库管理工具:首先,确保您有权访问并管理您的网站数据库。通常这需要通过如phpMyAdmin、MySQLWorkbench或其他数据库管理工具完成。定位到管理员账户表:在数据库管理工具中,找到存储易优后台管理员账户信息的数据表,通常该表被命名为ey_admin或其他类似名称。编辑......
  • 如何查看宝塔面板登录地址
    宝塔面板的登录地址通常是在安装完成后自动设置的,可以通过以下步骤来查看或确认宝塔面板的登录地址:检查安装提示:如果您刚刚安装了宝塔面板,安装脚本通常会在安装完成后直接显示登录地址和端口号。通过命令行查看:打开服务器上的命令行工具。输入命令 bt 后回车,这将进......
  • OpenWrt 运行 tailscale 登录 headscale,配置路由转发
    headscale安装参考:https://www.cnblogs.com/nihaorz/p/18455027tailscale安装cd/var/lib/curl-OLhttps://pkgs.tailscale.com/stable/tailscale_1.74.1_arm64.tgztar-zxvftailscale_1.74.1_arm64.tgzmvtailscale_1.74.1_arm64tailscalermtailscale/systemd/tails......
  • vscode 远程 linux(包括离线vscode-server安装,免密登录方法)
    vscode远程linux(包括离线vscode-server安装,免密登录方法)本教程前提是安装并配置好ssh服务1.vscode安装安装远程所需扩展及配置1.1安装扩展在vscode扩展中搜索Remote-SSH,下载安装1.2通过ssh远程连接1.2.1通过ssh连接命令连接在vscode中依次点击远程资......
  • SSM物业缴费管理系统u8mx4 校验登录
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统内容:物业,用户,项目类型,缴费通知,缴费信息,反馈信息,报修信息,健康上报,公告信息开题报告内容一、选题背景与意义随着城市化进程的加速,物业管理在小区管......
  • HarmonyOS NEXT模拟登录页,华为账号一键登录
    一、介绍基于鸿蒙Next模拟账号一键登录,免去账号注册环节二、场景需求1. 用户场景新用户: 需要快速注册并登录,以体验华为的服务。老用户: 希望快速登录,不用每次输入用户名和密码。2. 界面设计Logo和标题: 页面顶部展示华为的Logo及"一键登录"或"华为账号登录"的标题。3.......
  • linux_ssh免密登录
    SSH(SecureShell)协议是一种安全的网络协议,认证原理是基于用户名密码和基于密钥对两种认证方式,本次讲解基于密钥对的认证方式,也就是免密登录免密登录原理.ssh文件夹下的文件功能解释.ssh路径一般在用户的家目录下文件解释known_hosts记录ssh访问过计算机的公钥(publi......