Как я выполняю команду launchd как корень

У меня есть следующая команда launchctl как .plist файл. Это загружается и устанавливается работать один раз в день, но, это должно работать как корень, и я не уверен, как проверить это.

Кроме того, это задание крона в основном CD в каталог и выполнения команда. Я уверен, что launchd имеет лучший способ указать каталог, где он, как предполагается, выполняет команду.

Как я знаю, что это выполняется как корень и является там лучшим способом записать это?

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>dev.project.frontpage.feedparser</string>
    <key>ProgramArguments</key>
    <array>
        <string>cd</string>
        <string>/Users/eman/src/project/trunk/includes/;</string>
        <string>./feed-parser.php</string>
        <string>-c</string>
        <string>./feed-parser-config.xml</string>
    </array>
    <key>QueueDirectories</key>
    <array/>
    <key>StartCalendarInterval</key>
    <dict>
        <key>Hour</key>
        <integer>12</integer>
        <key>Minute</key>
        <integer>0</integer>
    </dict>
    <key>WatchPaths</key>
    <array/>
</dict>
</plist>
32
задан 05.09.2009, 04:00

2 ответа

Что папка .plist сохраненный в?

launchd Демоны выполнений (/Library/LaunchDaemons или /System/Library/LaunchDaemons) как корень, и выполнит их независимо от того, зарегистрированы ли пользователи или нет. Агенты запуска (/Library/LaunchAgents/ или ~/Library/LaunchAgents/) выполняются, когда пользователь зарегистрирован как тот пользователь. Вы не можете использовать setuid для изменения пользователя, запускающего скрипт на демонах.

Поскольку Вы захотите включить его /Library/LaunchDaemons Вы захотите удостовериться, что Вы загружаете его в launchd с правами администратора (например. sudo launchctl load -w /Library/LaunchDaemons/com.apple.samplelaunchdscript.plist)

Выезд man launchd для получения дополнительной информации.

46
ответ дан 07.12.2019, 09:09

Вы попытались использовать одного из launchd редакторов?

Для проверки это выполняется как корень, я - вполне уверенный launchd, запустит программы как корень. Когда-нибудь думайте о предоставлении владения сценария для укоренения с помощью chmod? Таким образом, это не будет работать, если не выполнено как корень. Необходимо затем проверить, что это работает.

sudo chown root:admin script_to_run_by_launchd
4
ответ дан 07.12.2019, 09:09

Теги

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