come avviare / arrestare / riavviare processi

5

Come nuovo arrivato da Windows OS, mi chiedo come avviare / arrestare / riavviare un servizio su Mac OS X Snow Leopard 10.6.8 (è diretto su Windows usando il suo Task Manager). Ho provato Activity Monitor, ma uccide solo i processi, non li avvia. Ho provato il comando: launchctl stop *servicename* e poi il comando launchctl start *servicename* dopo che ho premuto return sulla tastiera dopo ogni comando il terminale non mostra alcun messaggio quindi deve avere successo, ma quando controllo il risultato in Activity Monitor, suona che questo comando è inutile perché non ha alcun effetto su quel processo in Activity Monitor.

P.S. Sono sicuro di aver digitato il nome giusto del processo, ho preso il nome dalla lista usando il comando: launchctl list

EDIT: (linee di output del comando ps auxwww)

line1:

zend 204 0.0 0.1 602396 2684 ?? Ss 10:53AM 0:00.72 /usr/local/zend/gui/lighttpd/sbin/lighttpd -m /usr/local/zend/gui/lighttpd/lib -f /usr/local/zend/gui/lighttpd/etc/lighttpd.conf -D

line2:

root 202 0.0 0.0 623124 756 ?? Ss 10:53AM 0:00.00 /usr/local/zend/bin/watchdog -c /usr/local/zend/etc/watchdog-lighttpd.ini -u zend -g zend -s lighttpd
    
posta unprecedented 18.07.2011 - 09:34
fonte

2 risposte

2

È strano vedere le domande tra gli utenti di "windows migrated" e "default mac". :) Gli utenti che eseguono la migrazione di Windows in genere desiderano "modificare leggermente" il sistema. Utenti Mac predefiniti: semplicemente "utilizzarlo".

Utilizzo MAC da molti anni e mai necessario per utilizzare il comando launchctl. Se non vuoi dire mai, significa che nel normale utilizzo, a volte è necessario usarlo quando installi qualcosa dai Macport - per un carico di file di avvio di una volta o così.

Mi chiedo, perché hai bisogno di avviare / fermare / riavviare i servizi con launchctl? Chiedendo perché se non si è esperti utenti di OS X probabilmente si scopre il sistema "armonia" :). Quindi, in questo caso, IMHO, è meglio chiedere il problema specifico, quindi chiedi come avviare / interrompere il servizio specifico.

Come risposta: controlla prima le preferenze di Sistema. I servizi più comuni sono nel riquadro "Condivisione", come server web, sshd, condivisione di CD e così via ...

Alcuni file dmg di terze parti con materiale GNU hanno anche un riquadro delle preferenze personali. Ad esempio, è possibile installare il server MYSQL precompilato con un pannello delle preferenze, cosa che consente di riavviare il server.

Se non trovi il servizio desiderato in prefs, sii più preciso. Quale servizio è necessario avviare / interrompere? Il comando "launchctl" funziona come necessario per funzionare, anche ActivityMonitor. Puoi anche usare i comandi "ps axuwww" o "top" dal Terminale.

Ricorda che ora sei nel mondo UNIX, quindi quasi tutto può essere fatto dalla riga di comando, ma di solito questo significa davvero molto apprendimento ...;)

EDIT:

Prova:

sudo kill -1 204
              ^-process number

dal terminale, o semplicemente uccidi il demone da ActivityMonitor. Il watchdog dovrebbe riavviarlo.

Hai qualche file lighthttpd in / Library / LaunchDaemons / *? Quindi, qualsiasi output forma il comando:

ls /Library/LaunchDaemons | grep -i light

se sì, puoi usare:

sudo launchctl unload /Library/LaunchDaemons/filename.plist
sudo launchctl load /Library/LaunchDaemons/filename.plist

comando per stop / start.

    
risposta data 18.07.2011 - 11:29
fonte
2

I'm using MAC much years, and never needed to use the launchctl command. If mean never, mean in normal usage, of course sometimes needed use it when installing somethings from the macports - for onetime load of startup files or so.

I'm wondering, why you need start/stop/restart services with launchctl? Asking because if you not an experienced OS X users you probably will screw the system "harmony" :). So, in this case - IMHO - better to ask the specific problem, so ask how to start/stop the specific service.

Non vedo alcun problema nel porre la domanda più ampia su come i servizi vengono avviati e fermati se consente all'OP di comprendere meglio i meccanismi sottostanti del sistema.

Per quanto riguarda il motivo per cui si vorrebbe farlo, una buona ragione sarebbe quella di uccidere da remoto processi errati su macchine remote tramite Apple Remote Desktop. Lo faccio frequentemente per i nostri utenti della rete a scuola e posso risparmiare un sacco di lavoro sulle gambe (oltre a evitare di immettere comandi ripetitivi del terminale).

Gli utenti ARD vorranno uccidere i processi per nome anziché per PID in quanto l'ID di processo non è necessariamente lo stesso ogni volta che il processo viene avviato ...

sudo killall coreaudiod

... sarebbe un comando utile per gli utenti ARD poiché è ripetibile indipendentemente dal PID, mentre ...

sudo kill -1 211

... molto probabilmente funzionerebbe solo per uccidere coreaudiod nell'occasione che il suo PID fosse effettivamente 211 e sicuramente non sarebbe un comando ARD che vale la pena di salvare per uso futuro. Questo può sembrare ovvio per gli utenti "avanzati", ma gli utenti non familiari potrebbero non capire la differenza.

    
risposta data 04.12.2014 - 16:48
fonte

Leggi altre domande sui tag