질문이 있습니다:
얼마 전에 이라는 소프트웨어를 설치했는데 wii-u-gc-adapter
, 이를 실행했을 때 GameCube 컨트롤러를 Linux 컴퓨터에 연결하고 데스크톱 컴퓨터에서 게임을 즐길 수 있었습니다. 이것은 훌륭하게 작동합니다.
어느 시점에서 나는 몇 가지 조언을 받아들여 시작 시 이 프로세스를 실행하도록 내 컴퓨터 어딘가에 지시를 두었을 것입니다.
제가 이 질문을 하는 이유는 컴퓨터를 종료하면 이 프로세스가 끝날 때까지 1분 30초 동안 기다리기 때문입니다.
직접 실행할 때는 ./wii-u-gc-adapter
수동으로 종료합니다. 그러나 설치 중 어느 시점에서 시스템에 이를 실행하라고 지시했습니다.
이 프로그램이 나열되어 있는데 usr/local/bin
전혀 놀랍지 않습니다.
나에겐 이게 끝이야$pstree
├─whoopsie───2*[{whoopsie}]
├─wii-u-gc-adapte───2*[{wii-u-gc-adapte}]
├─wpa_supplicant
└─xdg-permission-───2*[{xdg-permission-}]
htop
Wii를 필터링하면 다음이 표시됩니다.
컴퓨터를 종료하면 1분 30초 동안 기다려야 하며 F2 키를 누르면 다음 메시지가 표시됩니다.
A stop job is running for Wii U Gamecube Adapter
해결되지 않은 문제를 정리하고 싶습니다. 나는 보통 파일을 수정할 때 무엇을 하는지 기록하지만 여기서는 그렇게 하지 않을 것 같아서 시작 시 프로그램이 실행되도록 하는 변경 사항을 어디에서 적용했는지 찾기가 어렵습니다.
[여기서 일부 진행 상황 - 편집 1]
~$ ps j 1045
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
1 1045 1045 1045 ? -1 Ssl 0 0:00 /usr/local/bin/wii-u-gc-adapter
따라서 1045의 상위 프로세스는 PPID 1입니다. 즉, 누군가 systemd에 이 프로세스를 시작하라고 지시한 것 같습니다. 이 프로세스를 목록에서 제외하고 싶습니다.
[여기서 더 많은 진행 상황]
gamecube.service 파일은 /etc로 이동하여 ag를 사용하여 검색하여 찾았습니다.
systemd/system/gamecube.service
2:Description=Wii U Gamecube Adapter
8:ExecStart=/usr/local/bin/wii-u-gc-adapter
이 서비스를 완전히 삭제하고 싶습니다. [세 번째 편집] 나는 이 답변을 따르고 있습니다.https://superuser.com/a/936976
[네 번째 편집] 수퍼유저 단계를 수행하고 상위 프로세스가 실제로 systemd에 ps j를 사용하고 있음을 발견한 후 이 문제가 해결되었습니다.
답변1
해결책:
- pstree에서 프로세스 이름 찾기
- htop에서 프로세스를 찾아 거기에서 PID를 가져옵니다.
- 명령을 사용하여
~$ ps j [PID]
상위 프로세스의 PID를 찾으십시오. - PID가 1이면 시작 중입니다.
systemd
- systemd로 시작한 경우 다음을 사용하십시오.이 답변1단계와 2단계에서 얻은 정보와 함께
systemd
시작 시 실행되는 목록에서 프로세스를 완전히 제거합니다.