centos 执行,centos7运行程序命令
大家好,感谢邀请,今天来为大家分享一下centos 执行的问题,以及和centos7运行程序命令的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
centos 7 shell 脚本怎样运行
一、root权限编辑/etc/rc.d/rc.local
Shell代码
su
cd/etc/rc.d/
vi rc.local
二、在这个文件加上你要执行的脚本,全部内容如下:
Shell代码
#!/bin/sh
#
# This script will be executed*after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch/var/lock/subsys/local
mount//192.168.0.3/data2-1/mnt/data2-1-o username=un,password=123
mount//192.168.0.3/data2-2/mnt/data2-2-o username=un,password=123
mount//192.168.0.3/data2-3/mnt/data2-3-o username=un,password=123
mount//192.168.0.3/data2-4/mnt/data2-4-o username=un,password=123
mount//192.168.0.3/data2-5/mnt/data2-4-o username=un,password=123
提示:这里的做法很不成熟,希望不要这样,最好自己写个脚本文件在这里来调用,结构更清晰,但是要注意到是把要执行的命令作为一个参数传递给su。
另外复习一个VI编辑命令-拷贝
yy
p
CentOS后台执行命令
nohup英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。
nohup命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out的文件到当前目录下,如果当前目录的 nohup.out文件不可写,输出重定向到$HOME/nohup.out文件中。
语法格式参数说明:
Command:要执行的命令。
Arg:一些参数,可以指定输出文件。
&:让命令在后台执行,终端退出后命令仍旧执行。
实例
以下命令在后台执行 root目录下的 runoob.sh脚本:
在终端如果看到以下输出说明运行成功:
这时我们打开 root目录可以看到生成了 nohup.out文件。
如果要停止运行,你需要使用以下命令查找到 nohup运行脚本到 PID,然后使用 kill命令来删除:
参数说明:
另外也可以使用ps-def| grep"runoob.sh"命令来查找。
找到 PID后,就可以使用 kill PID来删除。
以下命令在后台执行 root目录下的 runoob.sh脚本,并重定向输入到 runoob.log文件:
2>&1解释:
将标准错误 2重定向到标准输出&1,标准输出&1再被重定向输入到 runoob.log文件中。
au(x)输出格式: USER PID%CPU%MEM VSZ RSS TTY STAT START TIME COMMAND USER:行程拥有者 PID: pid%CPU:占用的 CPU使用率%MEM:占用的记忆体使用率 VSZ:占用的虚拟记忆体大小 RSS:占用的记忆体大小 TTY:终端的次要装置号码(minor device number of tty) STAT:该行程的状态: D:不可中断的静止 R:正在执行中 S:静止状态 T:暂停执行 Z:不存在但暂时无法消除 W:没有足够的记忆体分页可分配<:高优先序的行程 N:低优先序的行程 L:有记忆体分页分配并锁在记忆体内 START:行程开始时间 TIME:执行的时间 COMMAND:所执行的指令
centos7.9系统,运行了一个jar包,想把它停掉,但是怎么kill都杀不死
查看服务名:ps-ef| grep oys-core-4.0-SNAPSHOT.jar
查看得知进程PID= 12906
kill-9 12906杀死进程,发现线程不存在
再次查看服务名:ps-ef| grep oys-core-4.0-SNAPSHOT.jar,发现线程PID变了
解释:
那是因为oys-core-4.0-SNAPSHOT.jar根本就没有启动进程,看到的进程是grep指令的
如图:java标识的是jar启动的线程,grep标识的进程是输入了指令才显示的
-u的作用
python的输出是有缓冲的,即使在py脚本中每次遍历都有打印输出,但是因为缓冲的作用,我们不能在nohup.out日志中立即看到打印的输出。
加上-u参数,使得python不使用缓冲。
nohup python myscript.py-u> nohup.out 2>&1&
解析:
1 nohup不挂断地运行命令,忽略所有挂断信号(SIGNUP信号),比如当账号注销时。
最后的&:表示后台运行。
nohup command&,表示后台运行nohup命令。
2 linux中的0表示标准输入,1表示标准输出,2表示标准错误输出。
3>表示覆盖式重定向。正常输出是把内容输出到显示器上,重定向是把内容输出到文件中。 command> xxx.txt,将输出重定向到xxx文件中。
4>>表示追加式重定向。command>> xxx.log,将输出重定向追加到xxx.log文件中。
5 2>&1,2是标准错误输出,1是标准输出,这里的&表示引用的意思,对标准输出的引用。所以这个命令就表示将标准错误输出也重定向到标准输出指向的文件中。
如何修改CentOS7系统默认运行级别
CentOS系统有7个运行级别(runlevel)
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
修改运行级别
Centos7中采用target概念来定义运行级别,分为3级、5级,含义如下:
3级-multi-user.target文本 5级-graphical.target图形
1)查看当前运行的级别
# runlevel [root@chezhi chezhi]# runlevel N 3 [root@chezhi chezhi]#
如果系统当前默认运行级别是图形GUI模式则runlevel显示结果为: 5 3
2)修改开机默认运行级别
systemd使用链接来指向默认的运行级别,由/etc/systemd/system/default.target文件中决定。
切换到运行级3:
a.先删除: mv/etc/systemd/system/default.target/etc/systemd/system/default.target_copy5#将文件重命名即可
b.创建软连接文件: ln-sf/lib/systemd/system/multi-user.target/etc/systemd/system/default.target
或者
ln-sf/lib/systemd/system/runlevel3.target/etc/systemd/system/default.target
再者也可以使用systemctl命令:
systemctl set-default graphical.target
systemctl isolate multi-user.target
最后正常关机并重启系统: init 6
然后系统开机就会自动进入控制台命令模式,如果想切换回默认进入图形GUI模式执行命令:
#先删除文件 [root@chezhi system]# rm-rf/etc/systemd/system/default.target#重新创建软连接文件 [root@chezhi system]# ln-sf/lib/systemd/system/graphical.target/etc/systemd/system/default.target