linux 包的管理工具yum 和 xshell运行原理

本文深入解析了YUM软件包管理器的使用方法,包括安装、卸载、搜索、更新等操作,以及如何管理和清理缓存。同时,详细介绍了Linux下的权限管理,涵盖用户类型、权限分类及文件类型的划分,重点讲解了chmod和umask命令的用法。

1 yum
yum 软件包管理器
下载 yum install
卸载 yum remove
eg ;yum install tree 树形显示的软件

yum list 显示所有安装软件的清单
常配合grep 使用
yum list | grep 需要查看的名字

yum makecache 将服务器的包信息下载到本地电脑缓存起来配合
yum-Csearchxxx使用 ,这样做了就不用上网检索就能查找软件信息
执行完yum makecache 之后,就可以使用 yum search subversion 和 yum -C search subversion

yum clean package 清除缓存目录下的软件包,清空的是 var/cache/yum 下的 缓存

yum list 可以列出当前一共有哪些安装包 由于包非常的多,可以配合 grep 使用

eg yum list | grep tree

注意:显示的为:
软件包名 : 主版本号: 次版本号:源程序发行号:软件包发行号:主机平台:cpu框架
其中:x86_64 表示64位系统的安装包,(i686表示32位系统的安装包)
el7 表示操作系统发行版的版本,el7表示 Centos7 /redhat7;而el6表示centos6/redhat6

最后一列 base expel 表示软件源的名称,类似用途小米商城,华为应用商城这个意思

在这里插入图片描述
上图查看已安的软件包
下图查看软件包信息
在这里插入图片描述
**

总结一下yum**

1 查找 yum search

2 列出所有可安装的软件包 yum list

3 列出所有可更新的包 yum list updates

4 列出所有已安装的 软件包 yum list installed

5列出所有已安装 但不存在 yum Respository(库)内的软件包 :
yum list extras

6 列出所有软件包 yum list

7 获取软件包信息 yum info

8 列出所有包信息 yum info (该命令中途停不下来)

9 了列出所有可更新的软件包信息 yum info updates

10列出 已安装的软件包信息 yum info installed

11 列出所有已安装但不在 yum Repository软件包的信息
yum info extras

12 列出软件包退供哪些文件 yum provides

2 Linux 权限管理

linux 下的两种用户 : 超级用户 和 普通用户

权限分类 1 所有者 user
2 同组者 group
3 其他 other

文件类型分类 d : 文件夹
- :普通文件
l: 软链接
b:设备文件(硬盘,光驱等)
p :管道文件
c:字符设备文件(例如屏幕等串口设备)
s : 套接口文件

在这里插入图片描述如上图 :最左侧一列为文件类型 接下来的 r w x - 为权限,每三个一组,分别代表 user group others 这些rwx 同样可以用 8421编码表示

chmod

chmod 用来设置文件的权限
常用的 选项
+ 赋予权限
- 去掉权限
w 写权限
r 读权限
x 执行权限
u (user)
g(group)
o(others)
上面我说可以用8421 编码给赋值
eg:
chmod a.txt =7 7 7 将所有读写执行权限赋给所有用户

umask

文件权限=默认权限 & (~)
功能 : 查看或修改 文件掩码
查看 直接输入 umask
修改 umask 目标掩码

新建文件夹默认权限 0666(八进制)即不可执行
新建文件目录默认权限 0777(可读可写可执行)

但实际我们创建后发现显示的权限不是这个值,就是受到umask掩码的影响。

规则: 实际权限= mask &(~umask)
注意: 按位取反再按位与

敲级用户 默认掩码0022
普通用户 默认掩码0002

<think>我们正在解决用户的核心问题:通过Xshell远程启动WebLogic服务后,关闭Xshell会导致WebLogic服务停止。需要确保WebLogic服务在关闭SSH会话后仍能持续运行。 原因分析: 当通过SSH(如Xshell)启动一个进程时,该进程会与SSH会话关联。当SSH会话关闭(如关闭Xshell)时,系统会向该会话关联的所有进程发送SIGHUP信号(挂断信号),导致这些进程终止。 解决方案: 我们需要让WebLogic服务进程与SSH会话脱离关联,这样即使SSH会话关闭,进程也不会收到SIGHUP信号。常用的方法有: 1. 使用`nohup`命令(不挂断运行)。 2. 使用`&`将进程放入后台运行,并结合`disown`或`setsid`等命令。 3. 使用`screen`或`tmux`等终端复用工具,在独立的会话中运行进程,然后断开连接,进程会继续运行。 根据引用[1]引用[5]提供的信息,我们可以使用`nohup`命令来启动WebLogic服务,这样即使关闭Xshell,服务也不会停止。 具体步骤(以WebLogic用户身份操作): 1. 使用Xshell连接到Linux服务器,切换到WebLogic安装目录下的域目录(例如:`/opt/oracle/domains/mydomain`)的bin目录。 2. 使用`nohup`命令启动WebLogic服务,并将输出重定向到日志文件: ```bash nohup ./startWebLogic.sh > out.log 2>&1 & ``` 解释: - `nohup`:忽略SIGHUP信号,使进程在终端关闭后继续运行。 - `> out.log`:将标准输出重定向到out.log文件。 - `2>&1`:将标准错误重定向到标准输出(即也写入out.log)。 - `&`:将进程放入后台运行。 3. 执行命令后,可以按回车键回到命令行,此时会显示进程ID(PID)。也可以使用`jobs -l`查看后台任务(但注意,如果退出SSH,再重新连接,则无法看到之前会话的后台任务)。 4. 此时,可以安全关闭Xshell。WebLogic服务将继续在后台运行。 5. 如果需要停止WebLogic服务,可以再次登录服务器,进入bin目录,执行停止脚本: ```bash ./stopWebLogic.sh ``` 但是,根据引用[3]的提示,有时停止脚本可能无法完全停止所有进程,这时需要手动检查并杀死残留进程: ```bash ps -ef | grep weblogic # 找到相关的进程ID(PID),然后使用kill命令终止 kill -9 <PID> ``` 另外,引用[4]提到,要确保WebLogic服务以合适的用户(如weblogic用户)运行。因此,在启动之前,请切换至weblogic用户(如果当前不是): ```bash su - weblogic ``` 或者使用sudo命令(如果配置了sudo权限): ```bash sudo -u weblogic bash -c "cd /opt/oracle/domains/mydomain/bin && nohup ./startWebLogic.sh > out.log 2>&1 &" ``` 补充:如果使用`nohup`启动后,发现关闭Xshell服务仍然停止,可能是由于启动脚本(startWebLogic.sh)中本身有处理信号的问题。这时可以尝试使用`setsid`命令(启动一个新的会话): ```bash setsid ./startWebLogic.sh > out.log 2>&1 < /dev/null & ``` 或者使用`screen`工具(需要先安装): ```bash screen -S weblogic # 创建一个名为weblogic的screen会话 ./startWebLogic.sh # 在screen会话中启动 # 按Ctrl+A,然后按D,脱离会话 ``` 这样,即使关闭Xshell,服务也会在screen会话中继续运行。之后重新连接时,可以使用`screen -r weblogic`恢复会话查看。 总结:推荐使用`nohup`命令,因为它简单且通用。 注意:启动后,建议检查日志文件(out.log)进程状态,确保服务已正常启动。 步骤示例(以weblogic用户身份): ```bash # 登录服务器,切换到weblogic用户 su - weblogic # 进入域目录的bin目录 cd /opt/oracle/domains/mydomain/bin # 使用nohup启动 nohup ./startWebLogic.sh > out.log 2>&1 & # 查看输出,确认启动 tail -f out.log # 看到类似“Server started in RUNNING mode”的日志后,可以按Ctrl+C停止tail,然后关闭Xshell ``` 这样,WebLogic服务就会持续运行,不会因为关闭Xshell而停止。</think>### 解决关闭 Xshell 后 WebLogic 服务停止的问题 当通过 Xshell 启动 WebLogic 服务后关闭 Xshell 导致服务停止,这是因为 WebLogic 进程与 SSH 会话关联(成为会话的子进程)。关闭 Xshell 会发送 SIGHUP 信号终止所有子进程。以下是专业解决方案: #### 方法 1:使用 `nohup` 命令(推荐) **原理**:`nohup` 使进程忽略 SIGHUP 信号,脱离终端控制[^1][^5]。 ```bash # 进入 WebLogic 域目录 cd /opt/oracle/domains/mydomain/bin # 使用 nohup 启动服务(日志输出到 out.log) nohup ./startWebLogic.sh > out.log 2>&1 & ``` **关键参数**: - `> out.log`:重定向标准输出到日志文件 - `2>&1`:将错误输出合并到标准输出 - `&`:后台运行 **验证方法**: ```bash # 查看进程是否存在 ps -ef | grep WebLogic # 查看日志 tail -f out.log ``` #### 方法 2:使用 `screen` 或 `tmux` 会话管理 **原理**:创建持久终端会话,断开连接后进程继续运行[^2]。 ```bash # 安装 screen(如未安装) sudo yum install screen # CentOS/RHEL sudo apt-get install screen # Ubuntu/Debian # 创建新会话 screen -S weblogic_session # 在 screen 会话中启动 WebLogic ./startWebLogic.sh # 断开会话(保持进程运行) Ctrl+A → D # 重连会话 screen -r weblogic_session ``` #### 方法 3:使用 `setsid` 启动新会话 **原理**:直接创建独立会话,脱离终端控制。 ```bash setsid ./startWebLogic.sh > out.log 2>&1 ``` #### 服务停止的正确方式 ```bash # 正常停止(需在域目录执行) ./stopWebLogic.sh # 强制停止(当正常停止失败时) ps -ef | grep WebLogic # 查找 PID kill -9 <PID> # 强制终止进程[^3] ``` #### ⚠️ 注意事项 1. **权限管理**: - 使用 WebLogic 专用用户操作,避免 root 权限[^4] ```bash su - weblogic chown -R weblogic:weblogic /opt/oracle/domains ``` 2. **日志监控**: ```bash # 实时查看日志 tail -f out.log # 归档日志(示例) mv out.log out_$(date +%Y%m%d).log ``` 3. **启动验证**: - 检查端口监听:`netstat -tuln | grep 7001` - 访问控制台:`http://服务器IP:7001/console` > **根本原因**:SSH 会话关闭会向所有子进程发送 SIGHUP 信号。上述方法通过进程隔离(`nohup`)、会话持久化(`screen`)或新建会话(`setsid`)解决此问题[^1][^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值