起動時に一般ユーザーでtmuxを起動させる
とりあえずやったこと
code:ini
Description=tmux session for minecraft
After=network.target
Type=oneshot
User=tekkamelon
Environment="TERM=xterm-256color" "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" "HOME=/home/tekkamelon"
ExecStart=/usr/local/bin/start-tmux.sh
ExecStop=/usr/bin/tmux kill-session -t minecraft
RemainAfterExit=yes
Restart=on-failure
RestartSec=5
WantedBy=multi-tekkamelon.target
サービスで動かすスクリプトを作成
code:sh
set -x
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export TERM=xterm-256color
export HOME=/home/tekkamelon
# tmuxを起動
/usr/bin/tmux start-server
# セッションを作成
/usr/bin/tmux new-session -d -s minecraft 2>> /tmp/tmux-mysession-error.log
/usr/bin/tmux new-session -d -s bot
/usr/bin/tmux new-session -d -s edit
# マインクラフトサーバーのセッションでの作業ディレクトリを設定
tmux send-keys -t minecraft "cd /home/tekkamelon/Minecraft" C-m
# discord botを起動
tmux send-keys -t bot "mc_discord_bot.py" C-m
exit 0
参考