[排错] openSUSE&SUSE 解决切换 root 用户后无法打开图形界面

解决方法:

步骤一:获取当前用户的 DISPLAY 变量

> echo $DISPLAY
localhost:10.0

(补充:普通变量是 localhost:10.0)

步骤二:切换 root 用户

> su - root

步骤三:添加普通用户的 key 到 root 用户

# xauth add $(xauth -f ~user1/.Xauthority list | tail -1)

步骤四:在 root 用户下使用普通用户的 DISPLAY 变量

# export DISPLAY=localhost:10.0

(补充:这里的 localhost:10.0 是在前面的步骤中获取的)

[步骤] Linux 耗时较长操作的执行

步骤目录:

步骤一:开启一个 screen 窗口

步骤二:将用户登陆的超时时间设置为永不超时

步骤三:生成一个记录屏幕输出结果的文件

步骤四:执行这个耗时较长的命令

步骤五:将这个 screen 窗口挂起

步骤六:重新进入这个 screen 窗口
6.1 查看目前正在进入的 screen 窗口
6.2 重新进入这个 screen 窗口

步骤七:关闭这个窗口

具体的操作步骤:

步骤一:开启一个 screen 窗口

# screen -S running

(补充:这里以生成一个名叫 running 的窗口为例)

步骤二:将用户登陆的超时时间设置为永不超时

# TMOUT=0

或者:

# export TMOUT=0

(补充:TMOUT=0 代表用户永不会超时)

步骤三:生成一个记录屏幕输出结果的文件

# script /tmp/running.txt

(补充:这里以生成一个名叫 running.txt 的记录文件为例)

步骤四:执行这个耗时较长的命令

(步骤略)

步骤五:将这个 screen 窗口挂起

同时按下 “ctrl” 和 “a” 和 “d”

(补充:此时就算当前终端已经断开,正在执行的命令也会继续)

步骤六:重新进入这个 screen 窗口
6.1 查看目前正在进入的 screen 窗口

# screen -ls

6.2 重新进入这个 screen 窗口

# screen -r running

(补充:这里以进入一个名叫 running 的窗口为例)

步骤七:关闭这个窗口

# exit
# exit

(注意:只能在这个命令执行完后才能执行此操作)

[步骤] Linux 脚本的管理 (通过 systemd 实现)

步骤一:要被管理的脚本

# vim /root/12456.sh

创建以下内容:

#!/bin/bash
for i in {1..5}
do
echo $i
done

(补充:这里以创建 /etc/root/for.sh 脚本为例)

步骤二:创建 systemctl 的管理文件

# vim /etc/systemd/system/12456.service

创建以下内容:

[Unit]
Description=12345
After=default.target

[Service]
Type=oneshot
ExecStart=/root/12456.sh

[Install]
WantedBy=default.target

(补充:这里以创建 /etc/systemd/system/12456.service 来管理 ExecStart=/root/12456.sh 为例)

步骤三:加载刚刚创建的 systemctl 管理文件

# systemctl daemon-reload

步骤四:通过 systemd 管理脚本
4.1 启动脚本

# systemctl start 12456.service

4.2 关闭脚本

# systemctl stop 12456.service

4.3 重启脚本

# systemctl restart 12456.service

4.4 让脚本开机自启

# systemctl enable 12456.service

[命令] Linux 命令 [ ] (比较数值)

内容一:[ ] 符号的数值比较符号和方法

1) -eq 相等则结果为真
2) -ne 不等于则结果为真
3) -gt 大于则结果为真
4) -lt 小于则结果为真
5) -ge 大于或等于则结果为真
6) -le 小于或等于则结果为真

内容二:[ ] 符号的数值比较案例

# [ 0 -ne 1 ]
# echo $?
0

(补充:这里以测试 0 是否不等于 1 为例)