Denna delen av 99 uppdateras inte längre utan har arkiverats inför framtiden som ett museum.
Här kan du läsa mer om varför.
Mac-nyheter hittar du på Macradion.com och forumet hittar du via Applebubblan.

"shutdown -r now" fungerar inte

Tråden skapades och har fått 15 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • 2015-11-06 18:15

Jag försöker starta om flera maskiner med OS 10.10 med "shutdown -r now" på olika sätt, men fastnar bara i att jag måste starta burken med knappen varje gång. Varför?
Sätten jag försöker på är med via applescript, via SSH och genom Remote Desktop.

  • Medlem
  • 2015-11-06 18:17

Det fungerar i terminal, kanske jag ska tillägga.

"sudo shutdown -r now" via SSH kanske?

sudo reboot

bör fungera också (samma som sudo shutdown -r now).

edit: Har du lagt in adminnamn och lösen i scriptet?

Något sånt;

do shell script "shutdown -r now" user name "<adminname>" password "<adminpass>" with administrator privileges
  • Medlem
  • 2015-11-07 15:58

Ja, det är alltså inte så att jag inte kommer åt kommandot eller datorn, utan resultatet blir inte det önskade. Dator stängs av på sätt och vis. Testar jag på min egen MBP fryser den helt med skärmen lite dimmad. Testar jag mot en XServe i Remote Desktop så tappar jag den men ser av förklarliga skäl inte hur "skärmen" ser ut. Men ingen av dem kommer upp igen utan att man trycker på knappen.

Prova att lägga till & efter kommandot
Prova att lägga till > /dev/null 2>&1 efter kommandot
Prova att lägga till ignoring application responses runt hela ditt applescript

Prova alla grejer samtidigt, i omvänd ordning

  • Medlem
  • 2015-11-08 11:15
Ursprungligen av Richard Rönnbäck:

Prova att lägga till & efter kommandot
Prova att lägga till > /dev/null 2>&1 efter kommandot
Prova att lägga till ignoring application responses runt hela ditt applescript

Prova alla grejer samtidigt, i omvänd ordning

typ
[code}set theScript to "shutdown -r now & > /dev/null 2>&1 "[/code]

Senast redigerat 2015-11-08 17:53

Det skulle ju kunna vara en tjänst som hindrar omstart tänker jag. Skulle du inte kunna skicka restart till System Events istället?
Typ

osascript -e 'tell application "System Events" to restart"'

Kanske tillsammans med shutdown -r om det skulle dyka upp rutor som hindrar omstart. Alternativt kan man köra ett skript som stänger alla användarapplikationer "styggt" och sedan skicka restart till System Events.
Typ:

for i in $(ps aux | grep -v "^root" | tr -s " " | cut -d" " -f2); do sudo kill -9 $i; done; osascript -e 'tell application "System Events" to restart"'

Vilket listar alla processer som inte ägs av root och skickar dem till kill för att stängas av. Behöver köras med administrativa rättigheter om det är mer än en användare som är inloggad. Om det är bara de processer som ägs av den användare som startar skriptet kan man istället köra

for i in $(ps -x -o pid); do kill -9 $i; done; osascript -e 'tell application "System Events" to restart"'
  • Medlem
  • 2015-11-08 18:21
Ursprungligen av suddgummi:

Det skulle ju kunna vara en tjänst som hindrar omstart tänker jag. Skulle du inte kunna skicka restart till System Events istället?
Typ

osascript -e 'tell application "System Events" to restart"'

Kanske tillsammans med shutdown -r om det skulle dyka upp rutor som hindrar omstart. Alternativt kan man köra ett skript som stänger alla användarapplikationer "styggt" och sedan skicka restart till System Events.
Typ:

for i in $(ps aux | grep -v "^root" | tr -s " " | cut -d" " -f2); do sudo kill -9 $i; done; osascript -e 'tell application "System Events" to restart"'

Vilket listar alla processer som inte ägs av root och skickar dem till kill för att stängas av. Behöver köras med administrativa rättigheter om det är mer än en användare som är inloggad. Om det är bara de processer som ägs av den användare som startar skriptet kan man istället köra

for i in $(ps -x -o pid); do kill -9 $i; done; osascript -e 'tell application "System Events" to restart"'

Ser bra ut, testar detta.

  • Medlem
  • 2015-11-08 21:30

Fixar System Events att starta om en dator då Finder har hängt sig? Omfattas Finder av den sista raden du skrev, @suddgummi?

  • Medlem
  • 2015-11-08 22:14

Jag kör detta i en applescript-app:

set S to "for i in $(ps -x -o pid); do kill -9 $i "
my doWriteToLog(S)
ignoring application responses
	try
		(do shell script S user name theAdminUserName password theAdminPassword with administrator privileges)
		tell application "System Events" to restart
	on error err
		my doWriteToLog(err)
	end try
end ignoring

Men får svaret

Citat:

2015-11-08 22:08:39 for i in $(ps -x -o pid); do kill -9 $i
2015-11-08 22:08:40 /bin/sh: -c: line 1: syntax error: unexpected end of file

Det är som att den börjat med att ta ner sin egen process och sedan är det ingen som tar ner resten. Ska jag skapa en fil som exekveras stand alone för att få den att fungera, eller hur tar jag ner allt med eller utan tvång?

Ursprungligen av Baron:

Jag kör detta i en applescript-app:

set S to "for i in $(ps -x -o pid); do kill -9 $i "
my doWriteToLog(S)
ignoring application responses
	try
		(do shell script S user name theAdminUserName password theAdminPassword with administrator privileges)
		tell application "System Events" to restart
	on error err
		my doWriteToLog(err)
	end try
end ignoring

Men får svaret
Det är som att den börjat med att ta ner sin egen process och sedan är det ingen som tar ner resten. Ska jag skapa en fil som exekveras stand alone för att få den att fungera, eller hur tar jag ner allt med eller utan tvång?

Ser ut som att du missat en del av for-loopen. I bash måste for-loopen avslutas med done. S bör i så fall vara "for i in $(ps -x -o pid); do kill -9 $i; done"

  • Medlem
  • 2015-11-09 08:14

@suddgummi: Ah, det borde jag ha sett. (y)

Och du har förstås provat något så enkelt som: tell application "Finder" to restart

  • Medlem
  • 2015-11-09 12:38

Nej, det har jag inte, men i den situation jag vill hantera svarar Finder inte alls, så jag tror inte att det är en väg framåt.

  • Medlem
  • 2015-11-09 12:40
Ursprungligen av suddgummi:

Ser ut som att du missat en del av for-loopen. I bash måste for-loopen avslutas med done. S bör i så fall vara "for i in $(ps -x -o pid); do kill -9 $i; done"

Nu fungerar det, men med samma resultat som från början, dvs att skärmen fryser och jag måste trycka på knappen.
Jag tror jag får försöka lista vilka processer jag vill ta ner och försöka med dem separat.

1
Bevaka tråden