Я нашел решение для этого, которое могло бы быть полезным для других также. Я использовал следующую команду для закрытия соединения прямо после запуска команды, присоединенной к ssh:
ssh host "command to run on the host machine > /dev/null &"
Я точно не понимаю причины, почему эта команда вынуждает соединение закрыться, но по крайней мере это было полезно для меня. Если кто-либо понимает, почему это уничтожает соединение SSH; объясните.
Поскольку @Zelda упомянул, что сообщения являются hardcoded. Если Вы хотите изменить его вне исправления сообщения с дополнительными битами:
$ sudo shutdown -h +120 Save your work.
Необходимо будет перекомпилировать shutdown
, создание Вашего собственного исполняемого файла, который включает специализированное сообщение.
Например, вот демонстрационный исходный файл, shutdown.c. Должны были бы быть изменены строки, такие как они, и.c файлы должны будут быть восстановлены.
/*
* Tell everyone the system is going down in 'mins' minutes.
*/
void warn(int mins)
{
char buf[MESSAGELEN + sizeof(newstate)];
int len;
buf[0] = 0;
strncat(buf, message, sizeof(buf) - 1);
len = strlen(buf);
if (mins == 0)
snprintf(buf + len, sizeof(buf) - len,
"\rThe system is going down %s NOW!\r\n",
newstate);
else
snprintf(buf + len, sizeof(buf) - len,
"\rThe system is going DOWN %s in %d minute%s!\r\n",
newstate, mins, mins == 1 ? "" : "s");
wall(buf, 0);
}
Вы не можете изменить сообщение по умолчанию, можно только добавить некоторое определенное сообщение Вашего путем обеспечения этого после времени:
# shutdown 60 Down in an hour
Broadcast message from zelda@mongrel2_test
(/dev/pts/0) at 6:37 ...
The system is going down for maintenance in 60 minutes!
Down in an hour
Вы не должны заключать текст в кавычки после числа минут, которые Вы обеспечиваете завершению работы. При отмене завершения работы можно предоставить сообщение также.