¿Cómo elimino programáticamente el proceso CCLibrary por PID?

4

Necesito saber cómo escribir un comando o una secuencia de comandos para eliminar los procesos CCLibrary y CCXProcess. Son parte de Creative Cloud de Adobe y, desde su actualización anterior, siguen reapareciendo y ejecutando mi CPU al 100%.

Hasta que salga una solución, me gustaría una forma rápida de eliminarlo, sin tener que pasar por el Monitor de actividad.

Cuando lo intente

sudo killall CCLibrary

Obtengo "No se encontraron procesos coincidentes".

Puedo usar ps -ef para encontrar el número PID (por ejemplo, 9548) Puedo hacerlo, por ejemplo,

ps -ef | grep CCLibrary.app

que devuelve dos actividades, la biblioteca de CC y la propia grep.

$ ps -ef|grep CCLibrary 
501 9621 1 0 12:18pm ?? 51:51.71 /Applications/Utilities/Adobe Creative Cloud/CCLibrary/CCLibrary.app/Contents/MacOS/../libs/node /Applications/Utilities/Adobe Creative Cloud/CCLibrary/CCLibrary.app/Contents/MacOS/../js/server.js 
501 9818 9407 0 1:10pm ttys001 0:00.00 grep CCLibrary 

Entonces puedo "matar" según el número PID

Pero, ¿cómo puedo escribir un script para encontrar ese PID como una variable y luego eliminarlo?

    
pregunta tomh 08.12.2015 - 13:20

2 respuestas

4

En lugar de eliminar continuamente los procesos, hay una manera de desinstalar el administrador de aplicaciones Creative Cloud de Adobe, mencionado en este hilo .

  1. Descargue Creative Cloud Cleaner de Adobe desde este enlace: enlace

  2. Luego seleccione SOLO Creative Cloud

  3. Luego "desinstalar seleccionado" y reiniciar

Y tus fans finalmente se callarán. Las otras aplicaciones todavía funcionan.

    
respondido por el tomh 09.12.2015 - 11:55
3

Guardaré el "por qué es una mala idea para después de la respuesta", pero aquí hay algunos trucos que podrías usar. Como no todos pueden realizar pruebas con CC, escojamos Safari para este ejemplo:

ps -ef | grep "Safari "

Primero, agrego un espacio después del nombre del programa para asegurarme de que no sea parte de la ruta. Luego, use un corchete alrededor de un carácter del nombre del proceso, que evite que grep se encuentre a sí mismo. (probablemente hay una forma más elegante de hacer esto, pero este truco funciona bien para mí)

ps -ef | grep "[S]afari "

Esto hace que el comando grep no coincida con Safari: los corchetes le permitirían buscar [SZ]afari y coincidir con Safari o Zafari , por ejemplo. Solo queremos desbaratar grep y no encontrar caracteres alternativos para la posición 1.

ps -ef | grep "[S]afari " | awk '{print $2}'

Quita la segunda palabra separada del espacio en blanco para obtener el PID. Así es como se ve todo en una sesión para depurar los comandos que estamos usando:

mac:~ me$ ps -ef | grep Safari
  501   300     1   0 Wed06PM ??        45:03.88 /Applications/Safari.app/Contents/MacOS/Safari -psn_0_40970
  501   520     1   0 Wed06PM ??         1:08.95 /usr/libexec/SafariCloudHistoryPushAgent
  501   590     1   0 Wed06PM ??         1:39.35 /System/Library/PrivateFrameworks/SafariSafeBrowsing.framework/com.apple.Safari.SafeBrowsing.Service
  501   608     1   0 Wed06PM ??         0:10.31 /System/Library/PrivateFrameworks/SafariShared.framework/Versions/A/XPCServices/com.apple.Safari.SearchHelper.xpc/Contents/MacOS/com.apple.Safari.SearchHelper
  501  2476     1   0 Wed06PM ??         0:01.56 /System/Library/PrivateFrameworks/SafariShared.framework/Versions/A/XPCServices/com.apple.Safari.ImageDecoder.xpc/Contents/MacOS/com.apple.Safari.ImageDecoder
  501 38802     1   0 Thu01PM ??         0:02.41 /usr/libexec/SafariNotificationAgent
  501 92847 90892   0  7:27AM ttys013    0:00.00 grep Safari
mac:~ me$ ps -ef | grep "Safari "
  501   300     1   0 Wed06PM ??        45:04.31 /Applications/Safari.app/Contents/MacOS/Safari -psn_0_40970
  501 92875 90892   0  7:27AM ttys013    0:00.01 grep Safari 
mac:~ me$ ps -ef | grep "[S]afari "
  501   300     1   0 Wed06PM ??        45:04.57 /Applications/Safari.app/Contents/MacOS/Safari -psn_0_40970
mac:~ me$ ps -ef | grep "[S]afari " | awk '{ print $2 }'
300
mac:~ me$ echo kill 'ps -ef | grep "[S]afari " | awk '{ print $2 }''
kill 300

Note que utilicé echo para pasar la sintaxis del comando; si no lo hiciera, entonces el comando kill habría ejecutado y eliminado el programa Safari que estoy usando para escribir esta respuesta.

¯\_(ツ)_/¯

Entonces, ahora debería sentirse cómodo escribiendo un guión de una línea para finalizar el proceso (con suerte) y llegamos a la parte de la mala idea de la respuesta. Sería mejor usar killall server.js si nunca anticipa ejecutar otros servidores en los que no quiere que se eliminen.

  • ¿Qué sucede si alguien crea otro programa o un script con el mismo nombre, ahora lo estás matando o matando quién sabe a qué se dirige el comando awk ?
  • Además, ni siquiera hemos llegado a cómo programar el script. Lo ejecutas cada 5 minutos, una vez por hora y, lo que es peor, cuánto daño hace a cualquier trabajo que supuestamente esté haciendo en la CPU en este momento.
respondido por el bmike 08.12.2015 - 14:33

Lea otras preguntas en las etiquetas