15-while,until.脚本后台执行

本文介绍如何在Linux环境下将进程移至后台运行并进行前台调回等操作,包括使用ctrl+z暂停任务、通过bg命令继续后台运行、fg命令调回前台以及jobs命令的状态查询。此外还提供了计算Apache日志每行字节数总和的方法。

后台执行 bash xx.sh  &  调回前台 fg

正在执行送往后台先ctrl +z暂停,再bg 

jobs查看

 

 

计算  apache每一行日志字节之和

 

 

 

 

转载于:https://www.cnblogs.com/521linux/p/9466779.html

中标麒麟在### 在Linux启动进入图形界面后自动执行命令/脚本的方法 在Linux系统中,当启动进入图形界面后自动执行命令或脚本,可通过以下几种主流方法实现: --- #### 方法一:桌面环境自动启动(推荐) **适用场景**:用户级脚本,需要图形界面完全加载后执行 **支持环境**:GNOME、KDE Plasma、Xfce等主流桌面环境 **步骤**: 1. 创建桌面启动项文件: ```bash nano ~/.config/autostart/myscript.desktop ``` 2. 文件内容示例: ```ini [Desktop Entry] Type=Application Name=My Startup Script Exec=/home/username/myscript.sh X-GNOME-Autostart-enabled=true # KDE用X-KDE-Autostart-enabled ``` 3. 设置脚本执行权限: ```bash chmod +x ~/myscript.sh ``` > **原理**:桌面环境会在登录后扫描`~/.config/autostart/`目录并执行其中的.desktop文件 --- #### 方法二:systemd用户服务(支持延迟启动) **适用场景**:需要精确控制执行时机(如等待网络就绪) **步骤**: 1. 创建用户级systemd服务: ```bash mkdir -p ~/.config/systemd/user nano ~/.config/systemd/user/graphical-startup.service ``` 2. 服务文件内容: ```ini [Unit] Description=Graphical Startup Tasks After=graphical-session.target # 等待图形会话就绪 Requires=graphical-session.target [Service] Type=oneshot ExecStart=/home/username/myscript.sh [Install] WantedBy=default.target ``` 3. 启用服务: ```bash systemctl --user enable graphical-startup.service systemctl --user start graphical-startup.service # 立即测试 ``` > **特性**: > - 可通过`journalctl --user-unit=graphical-startup.service`查看日志 > - 支持设置`ExecStartPre`和`ExecStartPost`命令 --- #### 方法三:显示管理器配置(系统级) **适用场景**:所有用户生效的全局脚本 **支持环境**:GDM、LightDM、SDDM等 **步骤**(以LightDM为例): 1. 创建后登录脚本: ```bash sudo nano /etc/lightdm/lightdm.conf.d/99-run-script.conf ``` 2. 添加配置: ```ini [Seat:*] display-setup-script=/usr/local/bin/all-users-script.sh ``` 3. 设置脚本权限: ```bash sudo chmod +x /usr/local/bin/all-users-script.sh ``` > **注意**:不同显示管理器的配置路径: > | 显示管理器 | 配置文件路径 | > |------------|--------------| > | GDM | `/etc/gdm3/PostLogin/` | > | SDDM | `/usr/share/sddm/scripts/Xsetup` | --- #### 方法四:传统配置文件(跨桌面环境) 1. **~/.xprofile**(推荐): ```bash # 在文件末尾添加 ~/myscript.sh & ``` > 特点:在显示管理器登录后执行,早于桌面环境加载 2. **~/.xinitrc**(仅startx启动时有效): ```bash # 在exec启动桌面环境前添加 myscript.sh & exec startkde # 或exec gnome-session等 ``` --- ### 调试技巧 1. **验证执行环境**: ```bash # 在脚本开头添加 echo "GUI启动时间: $(date)" > /tmp/gui_start.log env >> /tmp/gui_start.log ``` 2. **延迟执行**(如等待D-Bus): ```bash #!/bin/bash until [ -n "$DBUS_SESSION_BUS_ADDRESS" ]; do sleep 1 done /path/to/your/command ``` 3. **桌面环境检测**: ```bash if [ "$XDG_CURRENT_DESKTOP" = "GNOME" ]; then gnome-specific-command elif [ "$XDG_CURRENT_DESKTOP" = "KDE" ]; then kde-specific-command fi ``` --- ### 方案选择指南 | 需求场景 | 推荐方法 | 执行时机 | |------------------------|------------------------|-----------------------| | 用户级脚本 | 桌面环境自动启动 | 桌面完全加载后 | | 需要等待网络/服务 | systemd用户服务 | 可自定义依赖关系 | | 系统管理员全局配置 | 显示管理器配置 | 用户登录前 | | 兼容旧系统 | ~/.xprofile | 登录后桌面加载前 | --- ### 相关问题 1. 如何检测图形界面是否完全加载完成? 2. 在Wayland环境下这些方法是否同样适用? 3. 如何让脚本只在首次登录时执行? 4. 系统启动过程中图形界面阶段的执行顺序是怎样的? : 桌面环境自动启动机制,通过.desktop文件实现用户级自启。 : systemd用户服务提供更精细的启动控制能力。 : 显示管理器配置适用于系统级全局脚本。 : 涉及Linux图形启动流程的详细阶段分析。
最新发布
08-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值