Запись на рабочем столе или другой удобный, но безопасный способ выполнения нескольких утверждений,

Я использую Gnome в Ubuntu 15.4.

Я хочу выполнить два или более действия одновременно, но давайте попробуем с двумя:

  • sudo pm-suspend
  • gnome-screensaver-command -l

pm-suspend был добавлен и разрешен для выполнения без предоставления паролей, указав:

%sudo ALL = (root) NOPASSWD: /usr/sbin/pm-suspend`

документация - Переменные / действия Exec и exec не имеют ссылок, если возможно наличие нескольких Exec, но, к сожалению:

[Desktop Entry]
_Name=Sleep and logout
_GenericName=Sleep and logout

#Exec=gnome-screensaver-command -l & sudo pm-suspend # does not work

#Exec=gnome-screensaver-command -l
#Exec=sudo pm-suspend                                # does not work either

Terminal=false
Type=Application
Categories=System;Security;

Я открыт для любых других предложений, как достичь данной функциональности, кроме:

  • создать сценарий и запустить его как sudo или аналогичный - я рассматриваю решения, основанные на этом небезопасном, давайте не будем углубляться в это
  • используйте выключатель питания gnome или как это называется (верхний правый угол) - у меня нет возможности приостановить

Кроме того, хотя я был бы рад получить то, что сказано выше, я был бы еще более рад получить ответы, в которых говорилось бы, как запускать несколько разных команд (без сценария / компиляции собственного двоичного файла и т. д.), на случай, если нравится связывать и автоматизировать некоторые другие действия.

1 ответ

Решение

Чтобы запустить несколько команд в одном модуле запуска, вам необходимо использовать следующий синтаксис:

Exec=/bin/bash -c "command_1 & command_2"

или, если второй должен ждать успешного завершения первого:

Exec=/bin/bash -c "command_1 && command_2"

или, как предложено Bytecommander (спасибо за завершение!), если command_2 должен ждать command_1 чтобы закончить, но все равно бежать command_1 заканчивается успешно или нет:

Exec=/bin/bash -c "command_1 ; command_2"
Другие вопросы по тегам