8种机械键盘轴体对比
本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?
有时候,我们自己写了一个Python脚本,但是怎么能像一个服务注册进系统内呢,使用系统命令systemctl进行管理?
我这里的系统是:centos 7.2
Linux 进程运行的7个等级运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制面板命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制面板,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
运行级别的原理在目录/etc/rc.d/init.d下有许多服务器脚本进程,一般称为服务(service)
在/etc/rc.d下有7个名为rcN.d的目录,对应系统的7个运行级别
rcN.d目录下都是一些符号链接文档,这些链接文档都指向init.d目录下的service脚本文档,命名规则为K+nn+服务名或S+nn+服务名,其中nn为两位数字,例如:S10network。
系统会根据指定的运行级别进入对应的rcN.d目录,并按照文档名顺序检索目录下的链接文档
对于以K(kill)开头的文档,系统将终止对应的服务
对于以S(start)开头的文档,系统将启动对应的服务
查看运行级别用:runleve
进入其它运行级别用:init N, init 0 关机, init 6 重启
所以简单的就是写一个脚本,放在/etc/rc.d/init.d目录下,然后在想要启动的系统级别目录下使用软链接指向,并且遵循标准的命令格式
但是我们怎么样使用systemctl命令进行管理服务呢,例如我们的redis?
我们编写一个shell脚本,用于控制redis的启动,停止和重启操作
示例:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56# description: Redis is an open source, advanced key-value store.
#
# processname: redis-server
# config: /data/redis/config
# pidfile: /var/run/redis.pid
PATH=/usr/local/bin:/sbin:/usr/bin:/bin
REDISPORT=6379
EXEC=/usr/local/readis/bin/redis-server
REDIS_CLI=/usr/local/readis/bin/redis-cli
PIDFILE=/usr/local/readis/run/redis_6379.pid
CONF="/usr/local/readis/conf.d/redis.conf"
function () {
if [ -f $PIDFILE ]
then
echo -ne "$PIDFILE exists, process is already running or crashedn"
else
echo -ne "Starting Redis server...n"
$EXEC $CONF
fi
}
function () {
if [ ! -f $PIDFILE ]
then
echo -ne "$PIDFILE does not exist, process is not runningn"
else
PID=$(cat $PIDFILE)
$REDIS_CLI -p $REDISPORT SHUTDOWN
while [ -x ${PIDFILE} ]
do
echo -e "Waiting for Redis to shutdown ...n"
sleep 1
done
echo -e "Redis stopped"
fi
}
case "$1" in
start) start
;;
stop) stop
;;
restart)
stop
start
;;
esac
chkconfig: 2345 20 80 (这里作一下特殊说明:20 是该进程开机的启动优先级,值越小越优先;80是关机时的优先级,值越小越先关闭;这里就可以设定linux值的开关机顺序了)
如果某服务缺省不在任何运行级启动,那么使用 - 代替运行级。
这样执行:./redis start|stop|restart 就可以了
然后我们创建一个redis.service服务
文档:/usr/local/readis/ini.d/redis 就是我们上面编写的redis管理脚本
redis.service1
2
3
4
5
6
7
8
9
10
11
12
13[Unit]
Description=redis
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/readis/ini.d/redis start
ExecReload=/usr/local/readis/ini.d/redis restart
ExecStop=/usr/local/readis/ini.d/redis stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
redis.service 置于目录/usr/lib/systemd/system/
执行:systemctl daemon-reload
然后设置自动启动:systemctl enable redis
然后就可以使用systemctl命令管理服务了:systemctl start redis
参考阅读