IT门户, 中国互联网人工智能物联网行业资讯平台--公众IT
新闻来源:互联网资料整理       发布时间:2023/4/7 6:27:34       共计:4598 浏览

linux里,如何查某个进程使用了哪些文件?使用了哪些网络端口?

只查看该进程:ps-ef|grep11345 查看该进程打开的文件:lsof-p11345 查看内存分配:lcat/proc/11345/maps 查看堆栈:pstack11345 查看发出的系统调用:strace-p11345 查看调用库函数:ltrace-p11345 11345是进程号

linux编程如何避免使用到已经被占用的端口号?

本行业问题

Linux下服务一般是通过shell脚本来启动程序或者服务,在shell脚本启动时,可以使用命令来查询,本服务或程序端口是否被其他程序占用,可以使用netstat命令。

netstat

比如我们查询80端口是否被占用,命令如下:

# netstat -anp|grep 80

从上面可以看出80端口已经被nginx监听。

netstat具体的参数如下,【-a】显示所有的socket连接,【-n】不使用域名,而使用ip显示,【-p】显示监听此socket的进程名称,【grep】是过滤包含80字符的匹配项。

简单函数封装

我们在写脚本时尽量将经常使用的脚本封装成函数,以便其他程序也可以调用这个函数,如下面的脚本,实现端口的查询函数【入参1=端口】:

我们用几个端口测试一下,可以看出上面我的端口被nginx占用

良好的编写代码习惯

在linux编程写程序时,尽量不要将监听的端口、IP、网卡接口等可能会发生变化的参数,写死到代码中,可以定义一个配置文件,把经常变化的参数写入配置文件,在程序启动或者调用时,加载配置文件来读取参数。

以上希望能够帮助到你。

版权说明:
本网站凡注明“公众IT 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
您可以扫描右侧微信二维码联系我们。
网站首页 关于我们 联系我们 合作联系 会员说明 新闻投稿 隐私协议 网站地图