如何在 Ubuntu 在 tty 上启动时运行 bash 脚本

如何在 Ubuntu 在 tty 上启动时运行 bash 脚本

我的 grub 没有“quiet splash”,所以它在启动时显示文本,我想在它显示“欢迎使用 Ubuntu 20.04 LTS”之前运行“neofetch -L”

答案1

您可以按照以下步骤添加自定义服务以在启动时运行脚本。

首先,在终端中运行以下命令来在主目录中创建并编辑 shell 脚本文件:

nano ~/MyScript.sh

第二,将以下代码复制并粘贴到编辑器中,neofetch -L仅是一个例子)并按Ctrl+X然后Y按 然后按 保存Enter

#!/bin/bash

neofetch -L

第三,制作 shell 脚本文件可执行文件通过在终端中运行以下命令:

chmod +x ~/MyScript.sh

第四,创建和编辑自定义systemd通过在终端中运行以下命令来使服务在启动时运行 shell 脚本:

sudo nano /etc/systemd/system/MyCustomService.service 

第五,将以下代码复制并粘贴到编辑器中,替换USERNAME您的用户名并按Ctrl+X然后Y按 然后按 保存Enter

[Unit]
Description=My Custom Service
Before=motd-news.service

[Service]
Type=oneshot
ExecStart=/home/USERNAME/MyScript.sh
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

第六,通过在终端中运行以下命令来启动服务:

sudo systemctl start MyCustomService

第七,通过在终端中运行以下命令来启用该服务:

sudo systemctl enable MyCustomService

最后,重新启动系统。


如果你出于任何原因想要撤消此解决方案,请在终端中按照以下相同的顺序依次运行以下命令:

  1. sudo systemctl stop MyCustomService
  2. sudo systemctl disable MyCustomService
  3. sudo rm /etc/systemd/system/MyCustomService.service
  4. rm ~/MyScript.sh

注意:

  • neofetch必须在您的系统上安装才能使上述示例脚本正常工作。可以按如下方式安装:

    sudo apt install neofetch
    
  • StandardOutput=journal+console将允许在屏幕上打印脚本的输出。

  • [Unit]您可以通过在服务文件中指定来更改自定义服务在启动期间开始执行的时间Before=After=系统服务,以便您的自定义服务将在某些系统服务之后和/或之前运行。请参阅这个答案按运行顺序列出系统服务。

当心:

首先测试您的脚本并确保它及时正确的执行,以避免启动期间出现延迟或锁定。

答案2

MOTD或当天的信息就是您从描述中寻求的内容。

https://linuxconfig.org/how-to-change-welcome-message-motd-on-ubuntu-18-04-server

相关内容