やるきなし

2018/01/22 11:40 / tclsh /usr/lib/modulecmd.tcl bash autoinit launches less command

いつものように google chrome を起動しようとしたら以下のような謎な状態に.

% google-chrome &
[1] 8067
% 
[1]  + suspended (tty output)  google-chrome

/opt/google/chrome/google-chrome は bash script なのだが,以下のような空の bash script でも再現することがわかって,どうやら bash と environment-modules 付近の問題.

#!/bin/bash

/usr/share/modules/init/bash から起動される tclsh /usr/lib/modulecmd.tcl bash autoinit が less を起動してしまう模様.

/usr/lib/modulecmd.tcl は environment-modules に含まれていて 4.1.0-1 ではこの問題が発生して 4.0.0-2 では問題は発生しない.

modulecmd.tcl に 4.1.0-1 で追加された以下の行関連が問題かと探ったが,どうやら環境変数 PAGER に設定されていた less が起動されていた模様(modulecmd.tclPAGERMODULES_PAGER を pager 向けの環境変数として使うらしいが(408行目付近),詳細までは見ていない).

set g_pager "/usr/bin/less" ;# Default command to page into, empty=disable

ということで,PAGER 環境変数を unset して解決(もしくは export PAGER=, 但しこの場合 man command が stdout に出力してそのまま終了してしまう).

追記 (2018/1/29)

上記,混乱していたようで,PAGER 環境変数を unset しても less が起動される.export PAGER= すれば問題は一応解決する.もしくは以下とか.

% PAGER= google-chrome &