Как апплет Cinnamon может выполнить команду с pkexec?

Апплет Xamppanel использует gksudo для запуска / остановки / перезапуска XAMPP в Linux. Linux Mint 19 и более поздние версии не поддерживают gksudo, поэтому этот апплет работает неправильно. Я пытаюсь воссоздать команду исходного апплета для использования с pkexec, но апплет все еще не работает правильно.

Команду, которую я использую, я могу выполнить в bash, например, в терминале gnome. В этом случае это работает. У апплета корицы нет ошибки, просто pkexec не показывает диалог, в котором я могу ввести пароль. Когда я выполняю команду в терминале, появляется диалоговое окно.

Оригинальные команды:

//applet command constants
var CommandConstants = new function() {
    this.COMMAND_START_XAMPP = "gksudo /opt/lampp/lampp start";
    this.COMMAND_STOP_XAMPP = "gksudo /opt/lampp/lampp stop";
    this.COMMAND_RESTART_XAMPP = "gksudo /opt/lampp/lampp restart";
    this.COMMAND_PHP_CONFIG_EDIT = "gksudo xdg-open /opt/lampp/etc/php.ini";
    this.COMMAND_LAUNCH_PHPMYADMIN = "xdg-open http://localhost/phpmyadmin/";
    this.COMMAND_LAUNCH_WEBDIR = "xdg-open http://localhost/";
    this.COMMAND_OPEN_WEBDIR = "nemo /opt/lampp/htdocs/";
}

Мои команды:

//applet command constants
var CommandConstants = new function() {
    this.COMMAND_START_LINUX_MANAGER = "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /opt/lampp/manager-linux-x64.run";
    this.COMMAND_START_XAMPP = "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /opt/lampp/lampp start";
    this.COMMAND_STOP_XAMPP = "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /opt/lampp/lampp stop";
    this.COMMAND_RESTART_XAMPP = "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /opt/lampp/lampp restart";
    this.COMMAND_PHP_CONFIG_EDIT = "xed admin:///opt/lampp/etc/php.ini";
    this.COMMAND_LAUNCH_PHPMYADMIN = "xdg-open http://localhost/phpmyadmin/";
    this.COMMAND_LAUNCH_WEBDIR = "xdg-open http://localhost/";
    this.COMMAND_OPEN_WEBDIR = "nemo /opt/lampp/htdocs/";
}

У меня нет опыта разработки апплетов для рабочего стола с корицей. Почему pkexec, выполняемый апплетом, не отображает диалог? Как я могу переделать эту команду, чтобы увидеть диалог pkexec? Вы знаете какой-нибудь Linux/bash ploy для этого?

0 ответов

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