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

Necesito saber cómo escribir un comando o secuencia de comandos para eliminar los procesos CCLibrary y CCXProcess. Forman 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 intento

sudo killall CCLibrary

Me sale "No se encontraron procesos coincidentes".

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

ps -ef | grep CCLibrary.app

que devuelve dos actividades, la CCLibrary 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?

Los comentarios no son para una discusión extensa; esta conversación se ha movido a chat .
Alentaría la colaboración en el espacio de respuestas, ya que trabajar en la respuesta será útil. El chat también funciona :).

Respuestas (2)

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: http://download.macromedia.com/SupportTools/Cleaner/mac/AdobeCreativeCloudCleanerTool.dmg

  2. Luego seleccione SOLAMENTE Creative Cloud

  3. Luego "desinstalar seleccionado" y reiniciar

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

Esto no solo me ayudó a eliminar el proceso de OP, sino también Adobe Creative Desktop. Salud.

Guardaré el "por qué esta es una mala idea para después de la respuesta", pero aquí hay algunos trucos que puede usar. Dado que no todos pueden probar con CC, elijamos 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 corchetes alrededor de un carácter del nombre del proceso, que evita que grep se encuentre a sí mismo. (Probablemente haya 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]afariy hacer coincidir Safario, Zafaripor ejemplo. Solo queremos equivocarnos grepy no encontrar caracteres alternativos para la posición 1.

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

Elimine la segunda palabra separada por espacios 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

Tenga en cuenta que solía echosimplemente pasar la sintaxis del comando: si no lo hiciera eco, entonces el comando matar se habría ejecutado y eliminado el programa Safari que estoy usando para escribir esta respuesta.

¯\_(ツ)_/¯

Entonces, ahora debería sentirse cómodo escribiendo un script de una línea para eliminar el proceso único (con suerte) y llegamos a la parte de la respuesta que es una mala idea. Sería mejor usarlo killall server.jssi nunca prevé ejecutar otros servidores que no desea eliminar.

  • ¿Qué pasa si alguien hace otro programa o un script con el mismo nombre, ahora también lo estás matando o matando a quién sabe a qué awkdecide apuntar el comando?
  • Además, ni siquiera hemos llegado a saber cómo programar el guión. ¿Lo ejecuta 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?
Hola, gracias por la sugerencia... Siguiendo tus pasos uno por uno: Cuando ejecuto ps -ef | grep "Safari" Obtengo: 501 10184 9407 0 2:17 p. m. ttys001 0:00.00 grep Safari, es decir, solo el comando grep ... (Safari se ejecuta en el proceso 10165). Estoy usando Yosemite, ¿quizás esto marque la diferencia?
@tomh Ese podría ser el caso. Safari es un mal ejemplo ya que hay muchas coincidencias. Lo elegí ya que cada vez que hice esto en el pasado, me arrepentí de trolear pspara luego tomar acción. Todavía lo hice de vez en cuando, pero registré todo en syslog y limpié el desorden tan pronto como pude. Hazme un ping en Ask Different Chat y podemos hacer otra puñalada.