Linux環境でstack overflowしたときの対処 + その他
そもそも無限ループしている、みたいな話ではなく、AtCoderのコードテストだと通るのに手元だとREする、みたいな話です。解決手順は以下の通り
- Terminalを開く
- ulimitを設定する
$ ulimit -s unlimited
- CLionを開く
$ ${HOME}/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/201.6668.126/bin/clion.sh > /dev/null 2>&1 &
JetBrains Toolboxで入れてる場合はこんなパスになる
恒久的に解決したい場合は以下のようなコマンドで設定を書き換える。再起動は上記のようなコマンドを叩かなくてもよくなる。
$ sudo echo "aajisaka soft stack unlimited" > /etc/security/limits.d/aajisaka.conf
ところで自分のUbuntu環境、BIOSのアップデートとかKernelのアップデートとかやってたらなぜかsudo権限失ったのですが...
aajisaka-x1carbon% sudo -s [sudo] password for aajisaka: aajisaka is not in the sudoers file. This incident will be reported.
ディスク暗号化が邪魔をしているのか、shiftキーを押しっぱなしでもrecovery modeに入ってくれないし困っていましたが、結局USB bootしてmountしてchrootして解決しました。以下参考にしたサイト
- LiveCdRecovery - Community Help Wiki
- linux - LUKS on Ubuntu 16.04 : unknown filesystem type 'crypto_LUKS' - Super User
- Solving the error “mount: unknown filesystem type LVM2_member” – IT Blog
ちなみに、これをやらかした原因はBIOSアップデートでもなくKernelアップデートでもなく、以下のコマンドが原因でした。
$ sudo usermod -G docker aajisaka
これまでaajisakaさんはsudo groupにいたのに、上記コマンドで消えてしまっていました。みんなは
$ sudo usermod -aG docker aajisaka
を使おうね! というのと、こういうときのためにrootパスワードは設定しておきましょう...