У меня на ноутбуке установлены ghc 6.12.3 и Ubuntu 11.04.
Я хотел бы иметь функцию, которая принимает некоторые команды оболочки и выполняет их как суперпользователь (например, sudo update-manager, sudo iwlist....) в Haskell. Я знаю, что модуль System.Process имеет некоторые функции, такие как createProcess, runInteractiveCommand. Но есть для одной необработанной команды или одной команды оболочки, а не для составных команд, таких как «sudo update-manager». Все мои эксперименты с этими функциями для выполнения "sudo..." не увенчались успехом. Терминал, который я использовал для запуска функции haskell, не ответил.
Я также посмотрел пакет HSH. Но мне кажется, что экспортированные туда функции тоже не годятся для sudo-команд.
Я предполагаю, что для выполнения таких команд, как «sudo update-manager», требуется два процесса. Один для «sudo», а другой для «update-manager». Поэтому мне нужно дважды вызвать такие функции, как «createProcess», и каким-то образом связать их, чтобы второй процесс для «update-manager» получил права суперпользователя от первого процесса для «sudo».
Заранее спасибо за помощь!
updateManager
является аргументом дляsudo
.sudo
собирается прочитать все его аргументы и создать из них новую командную строку. - person fuz   schedule 20.07.2011