Apagar como Mac

Apagar como Mac

Tengo una aplicación para iPhone que puede apagar de forma remota una computadora Mac. Me gustaría que esta aplicación apague mi computadora Ubuntu.

Recibo los siguientes mensajes de la aplicación cuando intento cerrarla:

Cuando Ubuntu está apagado:

"Error de conexión"

Cuando Ubuntu está activado:

"zsh:1: comando no encontrado: osascript"

Esto me hace pensar que la aplicación realmente logra acceder a zsh. Y si es así: ¿no debería poder crear un alias para "osascript" como este?

alias osascript="shutdown -h now"

El problema es que sigo recibiendo el mensaje (en la aplicación de Iphone):

"zsh:1: comando no encontrado: osascript"

¿Alguna idea de por qué? Supongo que la aplicación usa SSH y usa el mismo nombre de usuario que el alias en Ubuntu.

Para búsqueda fallida: ¿Se supone que debo ver el comando de acceso remoto en ".zsh_history"? No puedo ver ningún comando de la aplicación aquí.

Respuesta1

No utilice aplicaciones que no sean compatibles con Linux. "RMsrv Reboot" funciona muy bien para iniciar y apagar Linux.

Respuesta2

El mensaje de error es al menos coherente con un intento fallido de ejecutar un comando directamente a través de ssh, por ejemplo ssh someuser@somehost somecommand. Dependiendo de cómo zshse inicie y en qué archivo de configuración coloque el alias de la aplicación, es posible que simplemente no se haya cargado. Además, el archivo de historial solo será escrito por sesiones interactivas (lo cual es "bueno™": imagínese si cada script zsh volcara su contenido en su archivo de historial al ejecutarse).


osascriptes el intérprete de AppleScript de línea de comando (gracias aforquarepara la pista). Como tal, no está disponible para Ubuntu. Pero es probable que la aplicación esté ejecutando algún pequeño script a través de un parámetro de línea de comando para apagar la Mac.

  • Si lo único que desea hacer es apagar su máquina, puede simplemente colocar algún script en /usr/bin/osascriptsu máquina Ubuntu que la apague. Por ejemplo:

    #!/bin/sh
    sudo /sbin/shutdown -h now
    

    Esto supone acceso sin contraseña a al menos shutdown -h now. Puede lograrlo agregando la siguiente línea a su archivo /etc/sudoerso a un archivo incluido en él:

    YOURUSERNAME ALL = NOPASSWD: /sbin/shutdown -h now
    
  • Si desea reaccionar a diferentes comandos (apagar, reiniciar, etc.), puede intentar recuperar los parámetros de la línea de comandos que la aplicación utiliza para ellos. Para eso, primero coloque el siguiente script con el nombre osascripten /usr/bin(En teoría, cualquier ruta enumerada PATHdebería funcionar. Desafortunadamente, ssha menudo usa su propia configuración para PATH. Consulte a continuación) en su máquina Ubuntu:

    #!/bin/sh
    logfile='/path/to/logfile'
    echo "$@" >> "$logfile"
    echo '---->8----' >> "$logfile"
    

    No olvides hacerlo ejecutable ( chmod 755 /usr/bin/osascript).

    Ahora puede ejecutar las diferentes opciones que la aplicación tiene para ofrecer y verificar el resultado en el archivo de registro cada vez ( tail -F /path/to/logfilepodría ayudar). Ahora sólo necesitas encontrar las diferencias en cada salida y escribir un script que reaccione en consecuencia.


Como se mencionó anteriormente, sshpuede usar su propia configuración PATH, que puede ser bastante diferente de la configuración que obtiene en su sesión de terminal ( echo $PATH). Afortunadamente, puedes recuperar fácilmente el PATHusado sshcon

    ssh localhost 'echo $PATH'

Si ve /usr/local/sbino /usr/local/binallí, le sugiero que coloque el script allí, pero cualquier directorio de la lista debería servir.

información relacionada