%20%D0%B2%20%D0%BE%D1%82%D0%B4%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9%20%D1%83%D1%82%D0%B8%D0%BB%D0%B8%D1%82%D0%B5%20%D0%B2%D0%B7%D0%B0%D0%B8%D0%BC%D0%BE%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D1%8F%20%D1%81%20%D0%BE%D0%B1%D0%BE%D0%BB%D0%BE%D1%87%D0%BA%D0%BE%D0%B9%20(%D0%BD%D0%B0%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%2C%20iTerm2)%20%D0%BF%D1%80%D0%B8%20%D0%B2%D1%85%D0%BE%D0%B4%D0%B5%20%D0%BC%D0%BE%D0%B5%D0%B3%D0%BE%20%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F%20%D0%B2%20%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%83%3F.png)
iTerm2 — это потрясающая утилита, которая значительно упрощает мое взаимодействие с командной строкой. Я запускаю множество команд обновления каждый день и подумал, что было бы здорово, если бы они могли запускаться при входе пользователя в систему. Я знаю, что для запуска скрипта при входе пользователя в систему необходимо создать каталог в /System/Library/StartupItems со скриптом, который должен быть запущен, с тем же именем, что и каталог (например, update_sys/update_sys.sh). Две основные проблемы, с которыми я столкнулся после этого, заключаются в том, что 1) при выполнении команд нет окна терминала для отображения какого-либо вывода, и 2) я не знаю, как назначить iTerm2 (или любую другую утилиту) в качестве основной утилиты терминала для запуска скриптов. У меня iTerm2 установлена как утилита терминала по умолчанию, однако некоторые выполняемые скрипты все равно будут запускаться в терминале.
Любая помощь будет высоко оценена!
(Если мои представления о том, как добавлять команды в событие входа пользователя, неверны или существует более простой способ сделать это, пожалуйста, дайте мне знать!)
решение1
Я никогда не использовал iTerm (или Mac OS); но поскольку iTerm — это эмулятор терминала, он, вероятно, не подходит для планирования задач. В системах *nixiod скрипты входа обычно выполняются из файлов типа ~/.profile
, /etc/profile
, и в файлах, специфичных для оболочки типа ~/.bashrc
и /etc/bash.bashrc
. Вы можете прочитать о них на странице руководства вашей оболочки (например,man 1 bash
).
решение2
iTerm позволяет вам запускать эти скрипты в интерактивном режиме, и по мере того, как интерактивные сеансы отправляют вывод на экран, вы видите результаты.
Многие программы также могут выполняться как фоновые процессы.
Лучший способ увидеть вывод — это вручную добавить его в журнал. При необходимости используйте операторы echo, чтобы показать, где и какая команда выполняется. Для потока вывода, который исходит от встроенной команды.
Я думаю, то, что вам, вероятно, нужно, подробно описано здесь:https://unix.stackexchange.com/questions/74520/можно-перенаправить-вывод-в-файл-журнала-и-фон-процесса-в-одно-время
т.е. some_cmd > some_file 2>&1 &
который перенаправит стандартный вывод в файл журнала.