很簡單直覺,java限制雙開的程式寫法

private static final int PORT = 9999;
private static ServerSocket socket;    

private static void main() {
  try {
    //Bind to localhost adapter with a zero connection queue 
    socket = new ServerSocket(PORT,0,InetAddress.getByAddress(new byte[] {127,0,0,1}));
    // 正常流程
    //
  }
  catch (BindException e) {
    // 異常流程
    System.err.println("Already running.");
    System.exit(1);
    Runtime.getRuntime().halt(0);
  }
}

Linux 將命令模式下執行程式,所輸出的紀錄引導到檔案

以java為例,

System.out.println(“log …”)

可以在console下看到結果, 但我們若需要未來分析使用, 就必須導到檔案.

執行時可以增加以下參數

java  -jar xxx.jar   > a.out  2>&1

以前常常搞不清楚, 現在也還是一樣不太懂, 沒差拉, 這樣就可以用了, 然後 tail -f a.out 就可以在螢幕看到即時訊息, 事後也能將a.out保存起來呢.

關於Java Single Instance只能執行一次的解法

我找了2資源, 想法都很不錯, serversocket 的做法最容易接受 , 但真的被反組譯修改,也是防不勝防,除非連程式都簽章加密處裡.

https://rosettacode.org/wiki/Determine_if_only_one_instance_is_running#Java

http://www.sauronsoftware.it/projects/junique/manual.php#5

launch4j把java程式轉成exe可執行檔案

一直以來,我都是讓使用者執行bat, 開啟命令提示視窗, 來啟動java程式,但 這樣很難讓麻瓜接受使用,

因此網路上找到好用的轉換程式, 可以直接把jar檔案轉換成exe檔案, 這樣就方便多了

使用方式可點這裡看教學 ,

比較值得注意的是,可以勾選single Instance , 限制只能執行一次, 不能多次執行, 這功能真是太棒了

docker安裝peertube影音平台

peertube是開源的串流影音平台, 很適合拿來管理私人影音檔案.

本文安裝的先決條件是:
已備有httpd反向代理, 以及lets encrypt ,
因此不使用peertube官方自帶的webserver與cerbot, 以免造成管理上的困擾

帳號密碼: guest/guest

https://docs.kafeiou.pw/iammis/技術文章/HowTo/10034_(docker)安裝peertube.txt

ubuntu 安裝oracle jdk 8

1. 先到oracle網站下載

https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
下載 jdk-version-linux-x64.tar.gz 

2.   解開 tgz

sudo tar zxvf jdk-version-linux-x64.tar.gz -C /usr/lib/jvm

3. 安裝到 update-alternatives

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.8.0_version/bin/java" 1

4. 設定oracle java

sudo update-alternatives --config java 

pfsense的openvpn用戶端設定檔案如何移除

pfsense設定openvpn非常方便, 也有package能協助匯出windows用戶端安裝程式 , 再給使用者無腦安裝, 可以省下IT很多時間.

但是若使用者想要刪除設定檔案, 打開openvpn gui預設的資料夾,卻找不到設定檔案, 就無法刪除設定檔案.

查了一下設定檔案profile的位置, 總共有兩個地方.
1. openvpn gui預設的
%USERPROFILE%/OpenVPN/config

2.program file裡面
%ProgramFiles%/OpenVPN/config

pfsense用戶端安裝的時候, 設定檔案卻放在 ProgramFiles 裡面, 超怪的, 就算是新版pfsense 2.5.1 也跟2.4.5p1一樣沒變, 此時只要到正確的目錄, 刪除相關檔案,重啟常駐的openvpn gui 就可以了

ubuntu 20.04 安裝docker

1. 
sudo apt-get update
sudo apt-get install \
     apt-transport-https \
     ca-certificates \
     curl \
     gnupg \
     lsb-release
	 
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
	 
echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
##$(lsb release -cs) 試圖找出ubuntu對應版本 , 
##或是到這查https://download.docker.com/linux/ubuntu/dists/
  
sudo apt-get install docker-ce docker-ce-cli containerd.io

2. 自訂存放目錄

修改 /lib/systemd/system/docker.service
 從
ExecStart=/usr/bin/docker daemon -H fd://
 改成
ExecStart=/usr/bin/docker daemon --data-root <自訂目錄> -H fd:// 

重啟 docker 
systemctl stop docker
systemctl daemon-reload
systemctl start docker

完成

另一個遠端連線解決方案

**** Myrtille 藍莓 已經不再維護了

這幾天台灣爆發covid-19大規模感染, 可能又要實施居加辦公.

先前使用apache guacamole(酪梨醬)表現很不錯, 但是有很多設定, 員工無法自行完成, 需要IT人員一個個協助, 非常費時.

因此我網上找了找 html5 Remote Access Gateway github , 找到了 Myrtille 藍莓 也能達到遠端連線的功能 , 安裝方式很簡單, 可裝在windows 10(只能10個連線) 或是 windows 2012, 2016 , 安裝完畢, 再用 apache httpd reverse 方式加上letsencrypt憑證 , 就可以上線讓使用者使用, 使用者登入web後, 只需要知道自己公司電腦local ip ,帳號密碼, 就能連線, 非常方便, 缺點是中文輸入法失效(問題已回報), 要使用藍莓提供的”TEXT”功能, 進行傳送.

對照於大公司早已經實施行動辦公, 只要有vpn連線就不需要連到公司的主機做事, 我這方式算是半封閉的作法.
因為我不是資安專家, 超怕server被加密的, 但公司上班不允許使用行動設備(筆電,平板), 上班一律使用桌機, 在家若要辦公, 無vpn連線情況下, 只能用我們這種網頁RDP轉HTML5的方式,連線 這做法也算有資安防護力, 給大家參考.

1 ... 22 23 24 25 26 ... 59