Не мог выполнить две команды в Приложениях Запуска

Я использовал indicator-stickynotes команда в приложениях Запуска, которые хорошо работали. Я изменил его к sleep 30;indicator-sticknotes. Я считал это в различных статьях и даже на этом сайте. Но это не работает на мой.

Это было похоже:

Before

Я изменил его к:

After

3
задан 11 May 2019 в 17:28

1 ответ

Всякий раз, когда определяются запускаемые приложения, он создает настольную запись в ~ / .config / autostart . Итак, это запись на рабочем столе, которая отвечает за запуск приложения при запуске.

В типичной командной строке (терминале) вы можете использовать одну из следующих команд для выполнения двух команд.

sleep 30; indicator-stickynotes
sleep 30 && indicator-stickynotes
sleep 30 & indicator-stickynotes

Но записи рабочего стола очень сильно отличаются от командной строки. В соответствии с Desktop Entry Specification :

Ключ Exec

Ключ Exec должен содержать командную строку. Командная строка состоит из исполняемой программы, за которой может следовать один или несколько аргументов.

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

Вы можете использовать sh / bash в качестве команды для этого, например:

sh -c "sleep 30; indicator-stickynotes"

Как указано ElementW в одном из их комментарий , sleep 30; exec indicator-stickynotes позволил бы сэкономить немного памяти и PID, поскольку в противном случае sh ожидает только завершения указателей-индикаторов, своего дочернего процесса, и не служит никакой другой цели.

0
ответ дан 11 May 2019 в 17:28

Другие вопросы по тегам:

Похожие вопросы: