挑战3-1:查看使用端口的程序

介绍

实验楼的实验环境中运行了大量的服务进程,有的时候启动新的服务时会遇到端口已被占用的报错信息。

请实现一个脚本获取指定端口上正在运行的程序,如果没有运行任何程序则打印 OFF 字符串。

目标

  1. 完成的脚本必须放置在 /home/shiyanlou/get.sh
  2. 脚本执行时需要输入一个端口号数字作为参数,例如 /home/shiyanlou/get.sh 5901
  3. 脚本执行后输出 OFF 或者该端口上正在运行的程序完整路径。

脚本执行举例:

$ cd /home/shiyanlou
$ ./get.sh 5901
/usr/bin/Xvnc
$ ./get,sh 43000
OFF

知识点

  1. Linux 网络相关命令
  2. Bash 编程基础

提醒

  1. 因为 netstat 只能打印出执行者相关的程序名,其他用户的程序名无权限获取(因为容器中 root 权限不够,所以 root 也打印不出所有的程序名)所以在判断确实存在相关端口又无法获取其程序名的输出 Can‘t get the process name 例如:
# 若是 shiyanlou 用户执行
./get.sh 22
Can't get the process name
  1. 在本地的环境中权限足够不会出现上述情况,所以在自己的环境中不用考虑这样的判断

results matching ""

    No results matching ""