Вы можете использовать for, rename и sed в каталоге, где находятся файлы:
for i in O*.TXT; do rename -n "s/.*\.TXT/$(sed -nr 's/.*( |^)ProcID:([0-9]+)( |$).*/\2/p' "$i").TXT/" "$i"; done
Удалить -n после rename после тестирования, чтобы фактически переименовать файлы
Если вы не хотите, чтобы вас попросили ввести пароль, вам придется использовать для выполнения su как root, поэтому вам придется использовать:
sudo su reporter -c "cd /path/to/directorywithscript && bash runwebserver.sh >> /dev/null 2>&1&"
Однако, я думаю, что вы попытка сделать это очень плохая идея, вы разрешаете каждому пользователю регистрироваться как кто-либо еще, включая root.
Ваши текущие изменения в /etc/sudoers
эффективно позволяют user1
, user2
, user3
и reporter
выполнять любое действие как root
(поскольку запуск su
позволяет вам стать root
)! Ты почти наверняка этого не хочешь. И это не помогает вашей текущей проблеме вообще, потому что вы не хотите, чтобы эти пользователи запускали что-то с альтернативным идентификатором, вы хотите, чтобы root
запускал что-то с альтернативным идентификатором. Прежде чем продолжить, я рекомендую избавиться от этих строк из /etc/sudoers
(отредактируйте его с помощью visudo
, конечно), если вы не уверены, что это то, что вы хотите.
Если вы пользователь root
, и вы запустите его, вам всегда будет задан пароль:
su reporter -c "cd /path/to/directorywithscript && bash runwebserver.sh >> /dev/null 2>&1&"
Но когда root
запускает это, он должен просто преуспеть (если предположить, что он работал до Oracle Enterprise Server и единственное релевантное различие заключается в том, что вход root
отключен на Ubuntu).
Когда вы помещаете эту строку в rc.local
, в любом дистрибутиве GNU / Linux, включая Ubuntu, она запускается как root
. Он должен просто работать. Когда вы запустите его из командной строки, это не сработает. Но в rc.local
он должен просто работать.
Если вы хотите протестировать его из командной строки, дайте себе root
оболочку типа, очень похожую на среду rc.local
:
sudo -i
(Это симулирует исходную оболочку входа root
. Обычно для оболочки root
используйте sudo -s
. И, конечно, для запуска команды ...
с sudo
, просто используйте sudo ...
.)
su -c
и sudo
используют разные синтаксисы, поэтому, если вы хотите, чтобы эта команда использовала sudo
вместо su
, вам пришлось бы внести дополнительные изменения. Самый простой способ:
sudo -u reporter bash -c "cd /path/to/directorywithscript && ./runwebserver.sh >> /dev/null 2>&1&"
Однако я подчеркиваю, что вам не нужно преобразовывать команды su
в sudo
, чтобы они нормально работали из rc.local
.
В Ubuntu, в отличие от Oracle Enterprise Server, вход в систему как root
отключен по умолчанию (и вы почти наверняка не должны его включать). Но su
все еще работает, когда работает root
. su
также работает для пользователя, не меняющего идентификацию пользователя root
другому пользователю root
.
Если у вас есть эта строка в rc.local
, и она не работает, причина не в том, проблемы sudo
против su
. В этом случае что-то еще происходит не так. Чтобы устранить проблему, вам необходимо предоставить содержимое runwebserver.sh
.
Наконец, обратите внимание, что bash runwebserver.sh >> /dev/null 2>&1&
довольно неэлегантно. Проще понять (и, что менее важно, выглядит лучше), чтобы использовать bash runwebserver.sh &>> /dev/null
. Вы сказали, что это работает последним в rc.local
, поэтому вам не нужно использовать &
для его фона.
Однако вы должны подумать, хотите ли вы действительно подавить стандартную ошибку , а также стандартный выход (как вы сейчас делаете). Предположительно, если что-то написано на стандартную ошибку, то это либо важно, либо может быть подавлено путем изменения подробных настроек веб-сервера.
Если вы не хотите, чтобы вас попросили ввести пароль, вам придется использовать для выполнения su как root, поэтому вам придется использовать:
sudo su reporter -c "cd /path/to/directorywithscript && bash runwebserver.sh >> /dev/null 2>&1&"
Однако, я думаю, что вы попытка сделать это очень плохая идея, вы разрешаете каждому пользователю регистрироваться как кто-либо еще, включая root.
Ваши текущие изменения в /etc/sudoers
эффективно позволяют user1
, user2
, user3
и reporter
выполнять любое действие как root
(поскольку запуск su
позволяет вам стать root
)! Ты почти наверняка этого не хочешь. И это не помогает вашей текущей проблеме вообще, потому что вы не хотите, чтобы эти пользователи запускали что-то с альтернативным идентификатором, вы хотите, чтобы root
запускал что-то с альтернативным идентификатором. Прежде чем продолжить, я рекомендую избавиться от этих строк из /etc/sudoers
(отредактируйте его с помощью visudo
, конечно), если вы не уверены, что это то, что вы хотите.
Если вы пользователь root
, и вы запустите его, вам всегда будет задан пароль:
su reporter -c "cd /path/to/directorywithscript && bash runwebserver.sh >> /dev/null 2>&1&"
Но когда root
запускает это, он должен просто преуспеть (если предположить, что он работал до Oracle Enterprise Server и единственное релевантное различие заключается в том, что вход root
отключен на Ubuntu).
Когда вы помещаете эту строку в rc.local
, в любом дистрибутиве GNU / Linux, включая Ubuntu, она запускается как root
. Он должен просто работать. Когда вы запустите его из командной строки, это не сработает. Но в rc.local
он должен просто работать.
Если вы хотите протестировать его из командной строки, дайте себе root
оболочку типа, очень похожую на среду rc.local
:
sudo -i
(Это симулирует исходную оболочку входа root
. Обычно для оболочки root
используйте sudo -s
. И, конечно, для запуска команды ...
с sudo
, просто используйте sudo ...
.)
su -c
и sudo
используют разные синтаксисы, поэтому, если вы хотите, чтобы эта команда использовала sudo
вместо su
, вам пришлось бы внести дополнительные изменения. Самый простой способ:
sudo -u reporter bash -c "cd /path/to/directorywithscript && ./runwebserver.sh >> /dev/null 2>&1&"
Однако я подчеркиваю, что вам не нужно преобразовывать команды su
в sudo
, чтобы они нормально работали из rc.local
.
В Ubuntu, в отличие от Oracle Enterprise Server, вход в систему как root
отключен по умолчанию (и вы почти наверняка не должны его включать). Но su
все еще работает, когда работает root
. su
также работает для пользователя, не меняющего идентификацию пользователя root
другому пользователю root
.
Если у вас есть эта строка в rc.local
, и она не работает, причина не в том, проблемы sudo
против su
. В этом случае что-то еще происходит не так. Чтобы устранить проблему, вам необходимо предоставить содержимое runwebserver.sh
.
Наконец, обратите внимание, что bash runwebserver.sh >> /dev/null 2>&1&
довольно неэлегантно. Проще понять (и, что менее важно, выглядит лучше), чтобы использовать bash runwebserver.sh &>> /dev/null
. Вы сказали, что это работает последним в rc.local
, поэтому вам не нужно использовать &
для его фона.
Однако вы должны подумать, хотите ли вы действительно подавить стандартную ошибку , а также стандартный выход (как вы сейчас делаете). Предположительно, если что-то написано на стандартную ошибку, то это либо важно, либо может быть подавлено путем изменения подробных настроек веб-сервера.
Если вы не хотите, чтобы вас попросили ввести пароль, вам придется использовать для выполнения su как root, поэтому вам придется использовать:
sudo su reporter -c "cd /path/to/directorywithscript && bash runwebserver.sh >> /dev/null 2>&1&"
Однако, я думаю, что вы попытка сделать это очень плохая идея, вы разрешаете каждому пользователю регистрироваться как кто-либо еще, включая root.
Ваши текущие изменения в /etc/sudoers
эффективно позволяют user1
, user2
, user3
и reporter
выполнять любое действие как root
(поскольку запуск su
позволяет вам стать root
)! Ты почти наверняка этого не хочешь. И это не помогает вашей текущей проблеме вообще, потому что вы не хотите, чтобы эти пользователи запускали что-то с альтернативным идентификатором, вы хотите, чтобы root
запускал что-то с альтернативным идентификатором. Прежде чем продолжить, я рекомендую избавиться от этих строк из /etc/sudoers
(отредактируйте его с помощью visudo
, конечно), если вы не уверены, что это то, что вы хотите.
Если вы пользователь root
, и вы запустите его, вам всегда будет задан пароль:
su reporter -c "cd /path/to/directorywithscript && bash runwebserver.sh >> /dev/null 2>&1&"
Но когда root
запускает это, он должен просто преуспеть (если предположить, что он работал до Oracle Enterprise Server и единственное релевантное различие заключается в том, что вход root
отключен на Ubuntu).
Когда вы помещаете эту строку в rc.local
, в любом дистрибутиве GNU / Linux, включая Ubuntu, она запускается как root
. Он должен просто работать. Когда вы запустите его из командной строки, это не сработает. Но в rc.local
он должен просто работать.
Если вы хотите протестировать его из командной строки, дайте себе root
оболочку типа, очень похожую на среду rc.local
:
sudo -i
(Это симулирует исходную оболочку входа root
. Обычно для оболочки root
используйте sudo -s
. И, конечно, для запуска команды ...
с sudo
, просто используйте sudo ...
.)
su -c
и sudo
используют разные синтаксисы, поэтому, если вы хотите, чтобы эта команда использовала sudo
вместо su
, вам пришлось бы внести дополнительные изменения. Самый простой способ:
sudo -u reporter bash -c "cd /path/to/directorywithscript && ./runwebserver.sh >> /dev/null 2>&1&"
Однако я подчеркиваю, что вам не нужно преобразовывать команды su
в sudo
, чтобы они нормально работали из rc.local
.
В Ubuntu, в отличие от Oracle Enterprise Server, вход в систему как root
отключен по умолчанию (и вы почти наверняка не должны его включать). Но su
все еще работает, когда работает root
. su
также работает для пользователя, не меняющего идентификацию пользователя root
другому пользователю root
.
Если у вас есть эта строка в rc.local
, и она не работает, причина не в том, проблемы sudo
против su
. В этом случае что-то еще происходит не так. Чтобы устранить проблему, вам необходимо предоставить содержимое runwebserver.sh
.
Наконец, обратите внимание, что bash runwebserver.sh >> /dev/null 2>&1&
довольно неэлегантно. Проще понять (и, что менее важно, выглядит лучше), чтобы использовать bash runwebserver.sh &>> /dev/null
. Вы сказали, что это работает последним в rc.local
, поэтому вам не нужно использовать &
для его фона.
Однако вы должны подумать, хотите ли вы действительно подавить стандартную ошибку , а также стандартный выход (как вы сейчас делаете). Предположительно, если что-то написано на стандартную ошибку, то это либо важно, либо может быть подавлено путем изменения подробных настроек веб-сервера.
Если вы не хотите, чтобы вас попросили ввести пароль, вам придется использовать для выполнения su как root, поэтому вам придется использовать:
sudo su reporter -c "cd /path/to/directorywithscript && bash runwebserver.sh >> /dev/null 2>&1&"
Однако, я думаю, что вы попытка сделать это очень плохая идея, вы разрешаете каждому пользователю регистрироваться как кто-либо еще, включая root.
Ваши текущие изменения в /etc/sudoers
эффективно позволяют user1
, user2
, user3
и reporter
выполнять любое действие как root
(поскольку запуск su
позволяет вам стать root
)! Ты почти наверняка этого не хочешь. И это не помогает вашей текущей проблеме вообще, потому что вы не хотите, чтобы эти пользователи запускали что-то с альтернативным идентификатором, вы хотите, чтобы root
запускал что-то с альтернативным идентификатором. Прежде чем продолжить, я рекомендую избавиться от этих строк из /etc/sudoers
(отредактируйте его с помощью visudo
, конечно), если вы не уверены, что это то, что вы хотите.
Если вы пользователь root
, и вы запустите его, вам всегда будет задан пароль:
su reporter -c "cd /path/to/directorywithscript && bash runwebserver.sh >> /dev/null 2>&1&"
Но когда root
запускает это, он должен просто преуспеть (если предположить, что он работал до Oracle Enterprise Server и единственное релевантное различие заключается в том, что вход root
отключен на Ubuntu).
Когда вы помещаете эту строку в rc.local
, в любом дистрибутиве GNU / Linux, включая Ubuntu, она запускается как root
. Он должен просто работать. Когда вы запустите его из командной строки, это не сработает. Но в rc.local
он должен просто работать.
Если вы хотите протестировать его из командной строки, дайте себе root
оболочку типа, очень похожую на среду rc.local
:
sudo -i
(Это симулирует исходную оболочку входа root
. Обычно для оболочки root
используйте sudo -s
. И, конечно, для запуска команды ...
с sudo
, просто используйте sudo ...
.)
su -c
и sudo
используют разные синтаксисы, поэтому, если вы хотите, чтобы эта команда использовала sudo
вместо su
, вам пришлось бы внести дополнительные изменения. Самый простой способ:
sudo -u reporter bash -c "cd /path/to/directorywithscript && ./runwebserver.sh >> /dev/null 2>&1&"
Однако я подчеркиваю, что вам не нужно преобразовывать команды su
в sudo
, чтобы они нормально работали из rc.local
.
В Ubuntu, в отличие от Oracle Enterprise Server, вход в систему как root
отключен по умолчанию (и вы почти наверняка не должны его включать). Но su
все еще работает, когда работает root
. su
также работает для пользователя, не меняющего идентификацию пользователя root
другому пользователю root
.
Если у вас есть эта строка в rc.local
, и она не работает, причина не в том, проблемы sudo
против su
. В этом случае что-то еще происходит не так. Чтобы устранить проблему, вам необходимо предоставить содержимое runwebserver.sh
.
Наконец, обратите внимание, что bash runwebserver.sh >> /dev/null 2>&1&
довольно неэлегантно. Проще понять (и, что менее важно, выглядит лучше), чтобы использовать bash runwebserver.sh &>> /dev/null
. Вы сказали, что это работает последним в rc.local
, поэтому вам не нужно использовать &
для его фона.
Однако вы должны подумать, хотите ли вы действительно подавить стандартную ошибку , а также стандартный выход (как вы сейчас делаете). Предположительно, если что-то написано на стандартную ошибку, то это либо важно, либо может быть подавлено путем изменения подробных настроек веб-сервера.
Если вы не хотите, чтобы вас попросили ввести пароль, вам придется использовать для выполнения su как root, поэтому вам придется использовать:
sudo su reporter -c "cd /path/to/directorywithscript && bash runwebserver.sh >> /dev/null 2>&1&"
Однако, я думаю, что вы попытка сделать это очень плохая идея, вы разрешаете каждому пользователю регистрироваться как кто-либо еще, включая root.
Ваши текущие изменения в /etc/sudoers
эффективно позволяют user1
, user2
, user3
и reporter
выполнять любое действие как root
(поскольку запуск su
позволяет вам стать root
)! Ты почти наверняка этого не хочешь. И это не помогает вашей текущей проблеме вообще, потому что вы не хотите, чтобы эти пользователи запускали что-то с альтернативным идентификатором, вы хотите, чтобы root
запускал что-то с альтернативным идентификатором. Прежде чем продолжить, я рекомендую избавиться от этих строк из /etc/sudoers
(отредактируйте его с помощью visudo
, конечно), если вы не уверены, что это то, что вы хотите.
Если вы пользователь root
, и вы запустите его, вам всегда будет задан пароль:
su reporter -c "cd /path/to/directorywithscript && bash runwebserver.sh >> /dev/null 2>&1&"
Но когда root
запускает это, он должен просто преуспеть (если предположить, что он работал до Oracle Enterprise Server и единственное релевантное различие заключается в том, что вход root
отключен на Ubuntu).
Когда вы помещаете эту строку в rc.local
, в любом дистрибутиве GNU / Linux, включая Ubuntu, она запускается как root
. Он должен просто работать. Когда вы запустите его из командной строки, это не сработает. Но в rc.local
он должен просто работать.
Если вы хотите протестировать его из командной строки, дайте себе root
оболочку типа, очень похожую на среду rc.local
:
sudo -i
(Это симулирует исходную оболочку входа root
. Обычно для оболочки root
используйте sudo -s
. И, конечно, для запуска команды ...
с sudo
, просто используйте sudo ...
.)
su -c
и sudo
используют разные синтаксисы, поэтому, если вы хотите, чтобы эта команда использовала sudo
вместо su
, вам пришлось бы внести дополнительные изменения. Самый простой способ:
sudo -u reporter bash -c "cd /path/to/directorywithscript && ./runwebserver.sh >> /dev/null 2>&1&"
Однако я подчеркиваю, что вам не нужно преобразовывать команды su
в sudo
, чтобы они нормально работали из rc.local
.
В Ubuntu, в отличие от Oracle Enterprise Server, вход в систему как root
отключен по умолчанию (и вы почти наверняка не должны его включать). Но su
все еще работает, когда работает root
. su
также работает для пользователя, не меняющего идентификацию пользователя root
другому пользователю root
.
Если у вас есть эта строка в rc.local
, и она не работает, причина не в том, проблемы sudo
против su
. В этом случае что-то еще происходит не так. Чтобы устранить проблему, вам необходимо предоставить содержимое runwebserver.sh
.
Наконец, обратите внимание, что bash runwebserver.sh >> /dev/null 2>&1&
довольно неэлегантно. Проще понять (и, что менее важно, выглядит лучше), чтобы использовать bash runwebserver.sh &>> /dev/null
. Вы сказали, что это работает последним в rc.local
, поэтому вам не нужно использовать &
для его фона.
Однако вы должны подумать, хотите ли вы действительно подавить стандартную ошибку , а также стандартный выход (как вы сейчас делаете). Предположительно, если что-то написано на стандартную ошибку, то это либо важно, либо может быть подавлено путем изменения подробных настроек веб-сервера.
Если вы не хотите, чтобы вас попросили ввести пароль, вам придется использовать для выполнения su как root, поэтому вам придется использовать:
sudo su reporter -c "cd /path/to/directorywithscript && bash runwebserver.sh >> /dev/null 2>&1&"
Однако, я думаю, что вы попытка сделать это очень плохая идея, вы разрешаете каждому пользователю регистрироваться как кто-либо еще, включая root.
Ваши текущие изменения в /etc/sudoers
эффективно позволяют user1
, user2
, user3
и reporter
выполнять любое действие как root
(поскольку запуск su
позволяет вам стать root
)! Ты почти наверняка этого не хочешь. И это не помогает вашей текущей проблеме вообще, потому что вы не хотите, чтобы эти пользователи запускали что-то с альтернативным идентификатором, вы хотите, чтобы root
запускал что-то с альтернативным идентификатором. Прежде чем продолжить, я рекомендую избавиться от этих строк из /etc/sudoers
(отредактируйте его с помощью visudo
, конечно), если вы не уверены, что это то, что вы хотите.
Если вы пользователь root
, и вы запустите его, вам всегда будет задан пароль:
su reporter -c "cd /path/to/directorywithscript && bash runwebserver.sh >> /dev/null 2>&1&"
Но когда root
запускает это, он должен просто преуспеть (если предположить, что он работал до Oracle Enterprise Server и единственное релевантное различие заключается в том, что вход root
отключен на Ubuntu).
Когда вы помещаете эту строку в rc.local
, в любом дистрибутиве GNU / Linux, включая Ubuntu, она запускается как root
. Он должен просто работать. Когда вы запустите его из командной строки, это не сработает. Но в rc.local
он должен просто работать.
Если вы хотите протестировать его из командной строки, дайте себе root
оболочку типа, очень похожую на среду rc.local
:
sudo -i
(Это симулирует исходную оболочку входа root
. Обычно для оболочки root
используйте sudo -s
. И, конечно, для запуска команды ...
с sudo
, просто используйте sudo ...
.)
su -c
и sudo
используют разные синтаксисы, поэтому, если вы хотите, чтобы эта команда использовала sudo
вместо su
, вам пришлось бы внести дополнительные изменения. Самый простой способ:
sudo -u reporter bash -c "cd /path/to/directorywithscript && ./runwebserver.sh >> /dev/null 2>&1&"
Однако я подчеркиваю, что вам не нужно преобразовывать команды su
в sudo
, чтобы они нормально работали из rc.local
.
В Ubuntu, в отличие от Oracle Enterprise Server, вход в систему как root
отключен по умолчанию (и вы почти наверняка не должны его включать). Но su
все еще работает, когда работает root
. su
также работает для пользователя, не меняющего идентификацию пользователя root
другому пользователю root
.
Если у вас есть эта строка в rc.local
, и она не работает, причина не в том, проблемы sudo
против su
. В этом случае что-то еще происходит не так. Чтобы устранить проблему, вам необходимо предоставить содержимое runwebserver.sh
.
Наконец, обратите внимание, что bash runwebserver.sh >> /dev/null 2>&1&
довольно неэлегантно. Проще понять (и, что менее важно, выглядит лучше), чтобы использовать bash runwebserver.sh &>> /dev/null
. Вы сказали, что это работает последним в rc.local
, поэтому вам не нужно использовать &
для его фона.
Однако вы должны подумать, хотите ли вы действительно подавить стандартную ошибку , а также стандартный выход (как вы сейчас делаете). Предположительно, если что-то написано на стандартную ошибку, то это либо важно, либо может быть подавлено путем изменения подробных настроек веб-сервера.
Если вы не хотите, чтобы вас попросили ввести пароль, вам придется использовать для выполнения su как root, поэтому вам придется использовать:
sudo su reporter -c "cd /path/to/directorywithscript && bash runwebserver.sh >> /dev/null 2>&1&"
Однако, я думаю, что вы попытка сделать это очень плохая идея, вы разрешаете каждому пользователю регистрироваться как кто-либо еще, включая root.
rc.local
и работает как root
, поэтому нет необходимости (и не делает ничего иначе), чтобы поставить sudo
перед ней. Для тестирования команды это имеет смысл, хотя это не идеально, потому что он проверяет команду с текущей пользовательской средой не root
. (Подробнее см. В моем ответе .) Вы совершенно правы, что текущая конфигурация sudoers
, похоже, позволяет каждому пользователю стать root, и что это плохо. По крайней мере, reporter
, по-видимому, не является администратором, и намеренно так.
– Eliah Kagan
20 June 2012 в 05:45
Ваши текущие изменения в /etc/sudoers
эффективно позволяют user1
, user2
, user3
и reporter
выполнять любое действие как root
(поскольку запуск su
позволяет вам стать root
)! Ты почти наверняка этого не хочешь. И это не помогает вашей текущей проблеме вообще, потому что вы не хотите, чтобы эти пользователи запускали что-то с альтернативным идентификатором, вы хотите, чтобы root
запускал что-то с альтернативным идентификатором. Прежде чем продолжить, я рекомендую избавиться от этих строк из /etc/sudoers
(отредактируйте его с помощью visudo
, конечно), если вы не уверены, что это то, что вы хотите.
Если вы пользователь root
, и вы запустите его, вам всегда будет задан пароль:
su reporter -c "cd /path/to/directorywithscript && bash runwebserver.sh >> /dev/null 2>&1&"
Но когда root
запускает это, он должен просто преуспеть (если предположить, что он работал до Oracle Enterprise Server и единственное релевантное различие заключается в том, что вход root
отключен на Ubuntu).
Когда вы помещаете эту строку в rc.local
, в любом дистрибутиве GNU / Linux, включая Ubuntu, она запускается как root
. Он должен просто работать. Когда вы запустите его из командной строки, это не сработает. Но в rc.local
он должен просто работать.
Если вы хотите протестировать его из командной строки, дайте себе root
оболочку типа, очень похожую на среду rc.local
:
sudo -i
(Это симулирует исходную оболочку входа root
. Обычно для оболочки root
используйте sudo -s
. И, конечно, для запуска команды ...
с sudo
, просто используйте sudo ...
.)
su -c
и sudo
используют разные синтаксисы, поэтому, если вы хотите, чтобы эта команда использовала sudo
вместо su
, вам пришлось бы внести дополнительные изменения. Самый простой способ:
sudo -u reporter bash -c "cd /path/to/directorywithscript && ./runwebserver.sh >> /dev/null 2>&1&"
Однако я подчеркиваю, что вам не нужно преобразовывать команды su
в sudo
, чтобы они нормально работали из rc.local
.
В Ubuntu, в отличие от Oracle Enterprise Server, вход в систему как root
отключен по умолчанию (и вы почти наверняка не должны его включать). Но su
все еще работает, когда работает root
. su
также работает для пользователя, не меняющего идентификацию пользователя root
другому пользователю root
.
Если у вас есть эта строка в rc.local
, и она не работает, причина не в том, проблемы sudo
против su
. В этом случае что-то еще происходит не так. Чтобы устранить проблему, вам необходимо предоставить содержимое runwebserver.sh
.
Наконец, обратите внимание, что bash runwebserver.sh >> /dev/null 2>&1&
довольно неэлегантно. Проще понять (и, что менее важно, выглядит лучше), чтобы использовать bash runwebserver.sh &>> /dev/null
. Вы сказали, что это работает последним в rc.local
, поэтому вам не нужно использовать &
для его фона.
Однако вы должны подумать, хотите ли вы действительно подавить стандартную ошибку , а также стандартный выход (как вы сейчас делаете). Предположительно, если что-то написано на стандартную ошибку, то это либо важно, либо может быть подавлено путем изменения подробных настроек веб-сервера.
reporter
в sudoers
не является причиной ее работы и должна быть удалена. Предположительно reporter
является намеренно ограниченным пользователем root
, который запускает ваш веб-сервер с умышленно уменьшенными разрешениями. Предполагая, что это так, reporter
должен определенно i> не сможет запустить /bin/su
как root
(как вы в настоящее время настроили в sudoers
). Кроме того, любой администратор вашей системы уже может использовать sudo
для запуска этой или любой другой команды как root
; вероятно, нет веских оснований для ваших записей user1
, user2
и user3
.
– Eliah Kagan
20 June 2012 в 05:47