У вас есть несколько вариантов, все из которых сохраняют ваше требование завершения сеанса переднего плана в конце ( что вы делаете с kill $ WB
).
tail -f nohup.out
). Вам даже не понадобится трюк kill $ WB
, поскольку каждая команда выполняется на переднем плане, поэтому простого exit
будет достаточно. Резюме : ssh в ваш VPS -> выполнить tmux
-> введите перечисленные вами команды (без WB = $$; (
, ) &
в конце и заменив kill $ WB
простым exit
) -> отключите, отсоедините и повторно подключите по мере необходимости Если вы не можете или наденьте Не хочу использовать tmux, поместите свои команды в файл. Проблема здесь в основном в том, что nohup
не может выполнять сгруппированные команды (концепция подоболочки является исключительной для bash, вы не можете выполнить ее с помощью nohup), поэтому вы можете поместить свой код, например, в / opt / myscript.sh
file:
#! / bin / bash
# Вы передадите PID оболочки переднего плана в качестве ее первого аргумента
WB = $ 1 {{1 }}
sleep 2h;
echo "Удаление PMA и выход";
phpdismod mcrypt mbstring;
apt-get purge phpmyadmin -y;
перезапуск службы apache2;
sed -i 's / Include \ / etc \ / phpmyadmin \ /apache.conf/ / g' / etc / apache2 /apache2.conf;
kill $ WB {{ 1}}
Затем вы можете выполнить его с помощью nohup /opt/myscript.sh $$ &
Если вы не можете или не хотите помещать их в файл, просто выполните их вот так : nohup bash -c "... здесь ваши команды ...; kill $$" &
. $$
здесь по-прежнему будет относиться к внешней оболочке переднего плана, поскольку она подставляется перед выполнением в качестве аргумента bash -c
.
Поскольку ваш сценарий начинается с двухчасового сна, вы можете рассмотреть программу at
. Вы можете выполнить сейчас + 2 часа
, а затем ввести команды, которые вы хотите выполнить, через 2 часа после этого (с точностью до 1 минуты). После того, как вы наберете все нужные вам команды, вы можете выйти из "оболочки" с помощью Ctrl + D и проверить с помощью atq
, что ваша последовательность команд запланирована для выполнения.
Вы также можете выполнить свой сценарий как heredoc. Это в основном то же самое, что и вариант 3, но вместо того, чтобы указывать ваши команды в качестве аргумента -c
, вы передаете их на стандартный ввод bash. Просто имейте в виду, что если ваш сценарий ожидает аргументы, вы должны указать их во время вызова bash, например:
nohup bash -s - firstArgument secondArgument << 'EOF' &
.... paste здесь ваш код .....
EOF
Немного поздно, я знаю, но я нашел способ сделать это. (Однако для этого требуется расширение -с модификацией -.)
Вот шаг -по -пошаговому руководству:
silvioricardoc
)https://extensions.gnome.org/extension/617/fixclock/~/.local/share/gnome-shell/extensions/FixClock@silvioricardoc/
extension.js
в своем любимом редакторе. panelClockFormat
r
и нажмите Enter . ПРИМЕЧАНИЕ.:Если каталог расширения не работает, возможно, вам придется попробовать этот:/usr/share/gnome-shell/extensions/FixClock@silvioricardoc/extension.js