nodejs 윈도우 process kill 하기

먼저 윈도우 프로세스를 확인해보자.

윈도우키 + R 을 눌러 실행창을 띄우고 “cmd”를 입력하여 도스창을 하나 띄운다.


프로세스를 확인할 수 있는 명령어 “tasklist” 입력하고 엔터~

이미지 이름, PID, 세션 이름,세션#, 메모리 사용 항목을 확인 할 수 있다.

더 많은 정보를 보기 위해 /v 옵션을 줘서 더 많은 내용을 확인한다.

지금 실행중인 프로세스에서 강제종료시킬 프로세스를 찾아야 하는데,
이미지이름(exe)과 창 제목으로 찾을 수 있다.

아래의 명령어로 계산기 프로그램을 강제종료 시켜보자.
tasklist /fo “CSV” /v | find /i “계산기”

/fo는 file out의 약자료 출력되는 형식을 정한다. csv형태 즉 콤마로 구분되어 있는 형식이다.
프로세스 목록에서 find명령어로 계산기를 검색한다.


tasklist의 더많은 검색 방법은 아래링크 참고
https://docs.microsoft.com/ko-kr/windows-server/administration/windows-commands/tasklist

노드 프로젝트 만들기

1.폴더 만들기

2. 프로젝트만들기

변경할 내용있으면 변경하지만.. 구찮기때문에 기본값으로 엔터만 계속..

3. 비주얼스튜디오 코드를 실행하여 index.js를 생성함

4. 소스를 추가

const prgname = "\"계산기\"";   // 찾을 프로그램명
const cmdkill = 'taskkill /pid ';    // process kill 명령어
const exec = require('child_process').exec; // 프로그램 찾을때 쓸 프로세스
const execkill = require('child_process').exec; // 프로그램 죽일때 쓸 프로세스
let   cmdlist = 'tasklist /fo "CSV" /v | find /i ' + prgname;   // 프로세스 목록에서 프로그램 찾는 명령어


function executeTaskKill() {

    //let _this = this;
    exec(cmdlist, (err, stdout, stderr)=> { // 프로세스 찾기
        if ( err) {
             console.log(`exec error: ${err}`);
        } else {

            // console.log('stderr', stderr);
             console.log('stdout:', cmdlist, '\n', stdout);

             if ( stdout ){  // 찾은게 있으면
                // 결과 : "Calculator.exe","17200","Console","9","2,708 K","Running","MYPC-I5\pcname","0:00:01","계산기"

                let arrList = stdout.split(',');    // 콤마로 분리
                if ( arrList.length > 2 ){  // 분리시킨 배열이 2개 이상이면
                    let pid = arrList[1];   // 배열의 두번째는 pid "17200"
                    pid = pid.replace(/"/g, '');    // 큰따옴표 제거
                    if ( /^[0-9]*$/.test(pid) ){    // pid는 숫자이기때문에 숫자 체크
                       return execkill(cmdkill + pid, (err, stdout, stderr)=>{     // 찾은 pid로 프로그램 kill 명령 실행
                        //    console.log('execkill err:'+ err);
                            console.log('execkill stdout:'+ cmdkill + pid);
                           return executeTaskKill();    // 다시 첨부터 실행
                       });

                    }
                }
            }
        }

        return executeTaskKill(); // 다시 첨부터 실행

    });
}

소스 넣고 저장

실행해보자.

node index.js

프로그램을 중간에 켜서 kill 됨

이제 exe파일 만들자.

exe파일을 만들기 위한 pkg 설치

node install -g pkg

간단하게 설치 끝남.

이제 exe만들기

pkg index.js –targets node10-win-x64

파일생성 완료

잘 됨.
그러나 dos창으로 떠서 활용을 못함…. 일단은 여기까지..

시놀로지 DS214Play mariaDB 설치하기

시놀로지 모델은 DS214 play이다.

패키지 센터에서 MariaDB 10버전을 설치한다.
(MariaDB 5버전과 10버전차이는 별로 없는듯 하다)

설치버튼을 클릭한다.

다운로드가 진행되고…
설치가 완료되면 설정페이지가 나타난다.
패드워드를 입력해주고, 포트를 변경할 수 있다.

NAS가 외부로 노출되어 있고, 기본포트 3307을 사용하면 외부공격이 많이 들어올 것이다.
외부 공인IP를 그대로 사용한다면 포트를 변경해 주는 것이 좋다.

내용 확인 후 적용을 누른다.

설치가 완료되면 버튼명이 “설치” 에서 “열기”로 변경된다.
열기 버튼을 클릭한다.


설정화면이 나온다.

제어판에서 방화벽 규칙을 만든다

phpMyAdmin을 설치한다.

설치를 클릭한다

phpMyAdmin이 php로 되어 있으니 당연히 .추가 설치된다.

PHP를 설치하고

phpMyAdmin을 설치한다.

설치완료 후 열기 버튼을 누르면 phpMyAdmin 페이지가 열려야되는데…
외부 주소라.. 공유기 포트포워딩 해야된다..;;;
오늘은 여기까지…


다음날….

공유기에서 포트포워딩에 포트 추가하여 외부에서 나스로 접속 가능하게 설정하였다.. 그러나…

접속이 안된다. 외부에서 접근할 수 있도록 권한을 부여해야한다.

먼저 내부아이피로 접속하여 로그인 한다.

사용자 계정으로 가서

사용자 추가를 한다.

아아디와 비밀번호를 입력한다.

계정의 권한은 원하는 대로 설정 하되,

외부 계정에 DDL까지 권한이 있는 경우, 계정이 해킹 당하면 모두 dtop시킬 수 있기때문에

그런걸 감안하여, 설정 하도록 한다.

이제 외부에서도 접근이 가능하다.

여기까지가 MariaDB 설치 끝.

Windows Node-Version-Manager(nvm)

노드JS 버전업이 빨리 진행됨에 따라 한 버전만 사용하기 힘들다.

그래서 여러 버전을 사용하기 위해 nvm 이란걸 사용 한다.

먼저 설치..

https://github.com/coreybutler/nvm-windows/releases

nvm-setup-.zip 다운 받아서 압축 풀고 설치

Next 누르고
Next 누르고
Next 누르고
Install 누르면 설치
예 눌러주시고,
완료 Finish

제대로 설치가 되었는지 cmd창 열어서 버전 확인

실행창(윈도우키+r)

> nvm version

>nvm ls를 이용하여 설치된 nodejs 리스트 출력

현재 8.17.0 버전만 있는 상태

nvm이용하여 최신버전 설치
설치 버전은 http://nodejs.org/ 사이트에서 확인

12.18.2 버전 설치

nvm ls로 리스트 출력

12.18.2버전이 추가되어 있음

npm use 명령을 이용하여 최신버전을 선택 함

요렇게 하여 프로젝트별로 node 버전을 다르게 하여 사용할수 있다.

끝.

윈도우10 ‘KB4524244’ 를 삭제하지 않으면 윈도우 컴퓨터에 영향이 있다는 마소 정식 발표

윈도우10 ‘KB4524244’ 를 삭제하지 않으면 윈도우 컴퓨터에 영향이 있다는 마소 정식 발표가 나왔습니다

.(출처 : https://support.microsoft.com/en-us/help/4524244/security-update-for-windows-10-february-11-2020)
해결 방법으로는 실행 -> cmd -> WUSA.exe /UNINSTALL /KB:4524244 를 입력하시면 됩니다.

링크

한글 언어팩은 버전마다 다르므로

윈도우 실행창(윈도우키+R)에서 winver 입력하여 버전 확인

버전 확인후 아래 URL에서 다운로드

1809 : https://www.itechtics.com/windows-10-version-1809/

1803 : https://www.itechtics.com/windows-10-1803/

1709 : https://www.itechtics.com/windows-10-version-1709-fall-creators-update-direct-download-links-languages/

 

윈도우10 자동업데이트 후 재부팅 방지

윈도우10에서 자동으로 업데이트가 진행되고, 재부팅을 실행한다.

이때 패치나 드라이버 충돌로인해 오류가 나는 경우가 있는데..

그보다.. 작업화면이 다 날라가버림  (.\/.)

아래 설정으로 재부팅을 방지할 수 있다

  1. 윈도우키+R 키를 눌러 실행창을 띄운다.
  2. 실행창에 gpedit.msc 입력하여 로컬 그룹 정책 편집기를 실행한다.
  3. 컴퓨터구성 -> 관리 템플릿 -> Windows 구성 요소 -> Windows 업데이트 -> 예약된 자동 업데이트 설치 시 로그온한 사용자가 있을 경우 자동 다시 시작 사용 안함 -> 상태를 사용으로 변경

테이블별 용량, count 알아내기

–테이블별 ROW COUNT 조회
SELECT TABLE_NAME, NUM_ROWS
FROM ALL_TABLES
WHERE OWNER = ‘계정명’

–테이블별 용량 조회
SELECT OWNER, SEGMENT_NAME, SEGMENT_TYPE, SUM(BYTES)/1024/1024 AS MB
FROM DBA_SEGMENTS
WHERE 1=1
AND SEGMENT_TYPE = ‘TABLE’
AND OWNER = ‘계정명’
GROUP BY OWNER, SEGMENT_NAME, SEGMENT_TYPE
ORDER BY MB DESC

 

그외

— 오브젝트 조회

SELECT *

FROM ALL_OBJECTS

WHERE OBJECT_NAME LIKE ‘명’

— 테이블 조회

SELECT *

FROM ALL_TABLES

WHERE TABLE_NAME LIKE ‘명’

— 시노님 조회

SELECT *

FROM ALL_SYNONYMS

WHERE SYNONYM_NAME = ‘명’

— 테이블의 인덱스 정보

SELECT *

FROM ALL_IND_COLUMNS

WHERE TABLE_NAME = ‘테이블명’

— 테이블의 컬럼 정보

SELECT *

FROM ALL_TAB_COLUMNS

WHERE TABLE_NAME = ‘테이블명’

— TABEL COMMENT 쿼리

SELECT *

FROM ALL_TAB_COMMENTS

WHERE TABLE_NAME = ‘테이블명’

— COLUMN COMMENT 쿼리

SELECT *

FROM ALL_COL_COMMENTS

WHERE TABLE_NAME = ‘테이블명’