Na otázku jste odpověděli tímto prohlášením:
Cron to nazývá
.sh
každé 2 minuty
Cron neběží v terminálu, tak proč byste očekávali, že bude nastaven?
Nejčastějším důvodem pro zobrazení této chybové zprávy je, že se skript pokouší získat zdroj .profile
uživatele který nekontroluje, zda běží v terminálu, než udělá něco souvisejícího s tty. Zástupná řešení zahrnují použití řádku typu shebang jako:
#!/bin/bash -p
Což způsobuje získávání skriptů profilů na systémové úrovni, které se (doufají) nesnaží dělat nic příliš hloupého a budou mít kolem kódu, který závisí na spouštění z terminálu, stráže.
Pokud se jedná o celý skript, pak TERM
chyba pochází z něčeho jiného než prostý obsah skriptu.
Použití příkazu terminálu, tj. "clear", ve skriptu volaném z cronu (bez terminálu), spustí tuto chybovou zprávu. Ve vašem konkrétním skriptu příkaz smbmount očekává terminál. V takovém případě jsou výše uvedená řešení vhodná.
Můžete vidět, zda to opravdu není nastaveno . Spusťte příkaz set | grep TERM
.
Pokud ne, můžete to nastavit takto:export TERM=xterm