Как Показать Вашу основную “оболочку”, что Вы используете.? в UNIX

Мне нужно, чтобы он работал каждые, скажем, 14 дней. И в определенный час (скажем, в 4 утра). Возможно ли это с systemd?

Самый простой способ получить приблизительно каждые 14 дней - это делать это два раза в месяц.

[Install]
WantedBy=default.target

[Unit]
Description=Every fortnight.

[Timer]
OnCalendar=*-*-1,15 4:00:00
Unit=whatever.service

Этот синтаксис объясняется в man systemd.timer; *-*-1,15 - это 1-е и 15-е число каждого месяца каждого года.

Если вы хотели попробовать каждые четырнадцать дней с момента начала обслуживания точно :

[Timer]
OnActiveSec=14d

, то здесь есть подвох: Я думаю, что система должна была бы работать все время. Есть Persistent возможность "хранить на диске время, когда сервисный модуль был последний раз запущен...", но в соответствии со страницей руководства "эта настройка действует только на таймеры, сконфигурированные с OnCalendar".

-2
16.06.2016, 03:00
3 ответа

Я просто добавлю к остальным ответам, что если вы хотите протестировать для конкретной строки, вы можете использовать следующую:

  • Bash: эхо $BASH
  • Ksh: echo $KSH_VERSION

Эти переменные будут установлены соответствующей оболочкой, которую вы запускаете.

1
28.01.2020, 05:15

$$ - это текущий процесс.

PS -P $$ Следовательно, показывает ваш текущий процесс - который в этом случае находится ваша оболочка.

Вы также можете ECHO $ ​​Shell .

ИЛИ

getent passwd | grep ^`whoami`: | awk -F: '{print $NF}'
2
28.01.2020, 05:15

Чтобы получить вашу оболочку по умолчанию, вы можете просто распечатать $ Shell переменную :

$ echo $SHELL
/bin/bash

, пока это , не определяется POSIX , он доступен на всех снарядах, которые я проверен (ясень, Bash, Dash, Fish, CSH, KSH, TCSH и ZSH).

Если эта команда не работает над вашей средой, вы всегда можете смотреть / etc / passwd . Например, на системе Linux (вероятно, Unix также, но я не знаю), оболочка пользователя foo задается командой:

grep '^foo:' /etc/passwd | cut -d: -f7

, чтобы получить оболочку, которую вы в данный момент работаете , вы могли бы использовать:

ps -p $$ | tail -n1 | awk '{print $NF}'
1
28.01.2020, 05:15

Теги

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