Как создать псевдоним, чтобы убивать процессы, запущенные на порту TCP / IP?

Что у меня есть:

alias killport='sudo kill -9 `sudo fuser -n tcp $1 2> /dev/null`' 

Проблема:

Однако выполнение, например, killport 8000 , похоже, не работает. Тем не менее, просто работает …

 sudo kill -9 `sudo fuser -n tcp 8000 2> /dev/null` 

… Работает. Я не могу понять, где я запутался. Извините, если мне не хватает чего-то очевидного. Во всяком случае, я мог бы справиться с этим, если я немного ударил головой о стену.

Основное различие между рабочими и нерабочими версиями, насколько я могу судить, заключается в том, что версия с псевдонимом включает переменную и выполняется оболочкой для меня … Но, возможно, кто-то видел эту проблему раньше и знает где искать.

  • Альтернатива `pkill` или` pgrep -f` на cygwin?
  • Как убить все экраны?
  • Как программно отключить пользователя ssh?
  • Являются ли убийственные процессы, созданные при безопасном запуске?
  • Как systemd выжить в kill -9?
  • Тайм-аут оболочки Korn
  • дождаться предопределенного времени до выхода из сценария
  • Почему командный игрок снова начинается после того, как его убили
  • One Solution collect form web for “Как создать псевдоним, чтобы убивать процессы, запущенные на порту TCP / IP?”

    Вы должны использовать функцию вместо псевдонима, алиасы becaue не поддерживают параметры, делают что-то вроде этого:

     killport(){ sudo kill -9 $(sudo fuser -n tcp $1 2> /dev/null); } 

    Теперь поместите эту функцию в конфигурационный файл bash, например ~ / .bashrc, а затем запустите:

     source ~/.bashrc 

    И вы сделали

    НТН

    Linux и Unix - лучшая ОС в мире.