카테고리 보관물: 리눅스 Linux

wsl2 종료되지 않게 하기 – Prevent wsl2 from exiting

wsl2를 실행해두고 간이 linux 서버로 쓰려는 목적으로 mini pc에 실행을 해두었지만 wsl2가 며칠 이내에 반드시 자동으로 종료되는 문제가 있었습니다. 그래서 여러가지 설청 방법을 찾아서 wsl2를 항상 켜두는 방법을 전에 올린 적이 있었습니다. 그런데 그 방법은 결과적으로 작동하지 않는다는 것을 알았습니다.

예전보다 실행되어 있는 시간이 길어 조금 오래 버티기는 하지만 wsl2를 실행하고 열어둔 “터미널(terminal)” 이나 “파워쉘(powershell)”까지 종료 시키면서 확실하게 종료됩니다.

아마도 윈도우에서 실향된지 오랜된 wsl을 강제로 종료하도록 확실해게 처리한 것 같습니다. 특히 “명령 프롬프트”나 “파워쉘”을 통해서 실행한 것은 wsl뿐만 아니라 “명령 프롬프트”와 “파워쉘”까지 모두 종료됩니다.

그래서 다른 방법으로 C#으로 wsl2가 죽었는지 학인해서 되살리는 애플리케이션을 간단하게 돌려서 실행했더니 3주 이상 잘 작동하고 있습니다.

간단한 것이지만 소스는 github에 있으니 필요하면 참고하세요.

https://github.com/euriion/wsl-reviver

ImportError: cannot import name ‘_psutil_linux’ from partially initialized module ‘psutil’

다음과 같은 에러가 주피터 랩(Jupyter lab)에서 나는 경우가 있습니다.

ImportError: cannot import name ‘_psutil_linux’ from partially initialized module ‘psutil’

패키지 설치가 조금 꼬인 경우입니다.

다음과 같이 패키지를 설치해서 해결할 수 있습니다.

python -m pip install --ignore-installed psutil

Centos에 C++을 위한 build-essential 설치하기

Python 패키지 중에는 설치할 때 C++ 작성된 코어 모듈을 컴파일해서 설치하는 것들이 종종있습니다. 이런 것을 설치하려면 C++ 컴파일을 할 수 있는 컴파일러와 빌드도구를 설치해줘야합니다.

Ubuntu에서는 C++ 컴파일러를 포함해서 여러가지 개발 도구를 설치할 때 다음과 같이 합니다.

sudo apt-get install build-essential

Centos는 다음과 같이 하면 됩니다.

sudo yum groupinstall 'Development Tools'

Ubuntu 22.04에 Jenkins 설치하기

Ubuntu 22.04에 Jenkins를 설치하면 실행이 잘 안됩니다.
우분투 22.04는 최신 LTS 버전이라서 정말 쉽게 되야 할텐데 이상하죠?

Ubuntu 22.04에서 젠킨스가 안되는 이유는 대부분 Java때문입니다. Jenkins는 openjdk-11에서만 작동합니다. 설치해주고 기본 설정도 바꿔줘야 합니다. openjdk-18 같은 상위버전과는 작동하지 않습니다. Jenkins는 JVM기반의 Groovy 언어로 만들어졌습니다. JDK 영향을 많이 받으므로 이 점을 주의해야합니다.

설치 코맨드를 참고하세요.

# 자바 설치
sudo apt-get install openjdk-11-jdk-headless
# 기본 자바를 openjdk-11로 설정
sudo update-java-alternatives --set java-1.11.0-openjdk-amd64
# 키 받기
sudo wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
# 레파지토리 등록
echo deb http://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list
# 젠킨스 설치
sudo apt-get install jenkins