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 &
который перенаправит стандартный вывод в файл журнала.