201202:Linux下启动.sh文件的两种方法-IO Err
一. Linux下启动.sh文件的两种方法
一、直接./加上文件名.sh,如运行hello.sh为./hello.sh【hello.sh必须有x权限】
二、直接sh 加上文件名.sh,如运行hello.sh为sh hello.sh【hello.sh可以没有x权限】
方法一: 绝对路径执行.sh文件
./home/test/shell/hello.sh
/home/test/shell/hello.sh
sh /home/test/shell/hello.sh
方法二: 当前目录执行.sh文件
-
cd到.sh文件所在目录
-
给.sh文件添加x执行权限
比如以hello.sh文件为例,
chmod u+x hello.sh
-
./执行.sh文件
-
sh 执行.sh文件
以hello.sh文件为例,
sh hello.sh
即可执行hello.sh文件
注意事项:用“./”加文件名.sh执行时,必须给.sh文件加x执行权限
二. IO Error: Connection reset异常
异常信息:
ojdbc在linux环境下java.sql.SQLRecoverableException: IO Error: Connection reset
问题原因:
连接ORACLE服务器,客户端要生成随机密钥用于客户端认证,linux下JDK默认使用/dev/random,random采用阻塞方式生成随机数,生成的速度很慢,ORACLE服务器会主动reset,并在alert.log中报错:
TNS-12535: TNS:operation timed out
ns secondary err code: 12606
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0
Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.6.21)(PORT=33460))
WARNING: inbound connection timed out (ORA-3136)
解决方案:
编辑$JAVA_HOME/jre/lib/security/java.security将securerandom.source=file:/dev/random 改为file:/dev/urandom(urandom采用非阴塞式生成随机数,性能很好,不会产生超时)
IO Error: Connection reset异常参考文章
三. nginx在Linux下安装与启动
按照以下命令去执行即可
1. PCRE
PCRE(Perl Compatible Regular Expressions)是一个 Perl 库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库。
执行如下命令安装
yum install -y pcre pcre-devel
2. zlib
zlib 库提供了很多种压缩和解压缩的方式,nginx 使用 zlib 对 http 包的内容进行 gzip,所以需要在 linux 上安装 zlib 库。
执行如下命令安装
yum install -y zlib zlib-devel
3. OpenSSL
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。nginx 不仅支持 http 协议,还支持 https(即在 ssl 协议上传输 http),所以需要在 linux安装 openssl 库。
执行如下命令安装
yum install -y openssl openssl-devel
4. 解压缩
tar zxvf nginx-1.16.1.tar.gz
5. 进入nginx-1.16.1目录 ,使用 configure 命令创建一 makeFile 文件
复制下面的语句即可
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
6. 编译,使用make命令,然后会生成很多.c的文件
7. 安装,使用make install命令
8. 启动与访问
a. 将临时文件目录指定为/var/temp/nginx/client
mkdir /var/temp/nginx/client -p
b. 启动Nginx
创建好之后,我们就可以cd nginx 命令进入到Nginx目录,可以看到三个文件夹第一个conf,配置文件所放的目录,html是我们静态资源放的目录,当然,这是默认的,我们也可以自己改,sbin目录就是存放了我们的启动文件
那么我们进入sbin这个文件,可以发现里边只有一个文件
接着我们就可以使用 ./nginx 命令来启动Nginx了
然后直打开浏览器访问,输入IP地址,然后因为他的端口号默认是80,所以敲 IP地址就可以了
(如果访问不了,可能是因为被防火墙拦截了,需要使用
firewall-cmd --zone=public --add-port=80/tcp --permanent
把80这个端口放行了,然后然后再使用firewall-cmd --reload来刷新一下重新访问即可)
如果想要关闭可以使用 ./nginx -s stop 或者 ./nginx -s quit命令
./nginx -s stop
./nginx -s quit
(./nginx -s stop这个命令就相当于杀进程,./nginx -s quit方式就比较温和,他会保存配置然后再退出,第一个相当于非正常退出,第二个相当于正常退出,)
然后还有一个比较重要的命令 ./nginx -s reload 重新加载配置文件,即刷新
./nginx -s reload
然后还可以使用ps aux|grep nginx 命令来查看进程
ps aux|grep nginx