suse操作系统上,根据端口杀进程
本次主要介绍,在suse操作系统上根据端口进行服务的启动停止,和利用普通用户来执行root用户才能启动的服务。
- 本次的操作系统版本为suse linux 11 64位
- 本次所指的服务为redis服务
根据端口杀进程
#!/bin/sh
pid=$(netstat -anp|grep 6379|grep redis-server|awk '{printf $7}'|cut -d/ -f1)
if [ $pid ];then
kill -9 $pid
echo redis-server has stopped[1].
else
echo redis-server has stopped[0].
fi
其中6379代表默认的redis端口,redis-server为redis的服务名,(根据端口和服务名关键字可唯一确定服务对应的进程,防止小的端口号被识别)
其中awk截取第七列,服务名和端口
其中cut 用于截取 端口
启动redis服务与上面类似,仅需置换启动逻辑和命令
启动命令:
nohup ./redis-server /home/ocdsm/redis/redis-2.8.24/redis.conf >redisstart.out 2>&1 &
sudo方式运行服务
由于端口小于1024的服务均需要root权限的用户才能执行,但是一般正式环境,root的密码不可能让应用用户知晓,故产生以上的需求。例如ldap服务采用的389
1:首先使用root提升/etc/sudoers的文件权限,原始的权限为440,如果需要开始sudo权限,必须第一步提升/etc/sudoers的权限为740,增加
user1 ALL=/etc/init.d
让user1 有/etc/init.d目录下的执行权限
增加完成之后,需要将/etc/sudoers的文件权限还原。
启动服务,如:redis.sh,使用以下命令:
sudo ./redis.sh
首次使用 sudo command命令时,需要root的密码。