質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

2回答

2567閲覧

自作アプリのLinux VPSでの稼働について

yushistr

総合スコア12

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

1クリップ

投稿2018/01/25 09:26

現在、C#と.NET Coreを使ってDiscord(VCアプリ)のBOTを開発しています。
BOTの仕様として起動後にコマンドでBOT動作を一部変更できるCUIを備えています。
本番稼働では24時間稼働を目指すためにConoHaのVPS(CentOS 7)上で起動して動作しているのですが、
問題点が2つほどあり困っています。

1、SSH接続を終了するとBOTのプロセスも終了してしまう
BOTの起動でTeraTermを使ってSSHログインし、BOTプロセスを起動させているのですが、
TeraTermが終了してしまう(PCの再起動、シャットダウン、回線落ちなど)とBOTのプロセスも一緒に終了してしまいます。
このままでは24時間稼働する上でVPS上で動かす意味がなくなってしまいどうにかしたいのですが方法はありますでしょうか。
過去に一度だけSSH接続が切断されてもプロセスが生きていたことがありましたが理由は分かってません。

2、SSH接続を一度切断すると元のCUI画面へ戻れない
これは自分が開発しているソフトに限った話ではないと思うのですが、
アプリケーションのCUIを操作している途中でSSH切断するとプロセスが生きていた場合でも元のCUI入力画面に戻る方法が分からず
少し困っています。
LinuxのSSH接続経由での操作で再度既に起動しているアプリケーションのCUIを呼び出すことは可能なのでしょうか?

BOTの待機状態が以下の画像の通りなのですが、この状態でSSH切断してその後再接続したときこの画面に戻ることが出来るような方法を探しているのですが、
ググってもぴったりな答えが見つからずで・・・
![イメージ説明

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

1、SSH接続を終了するとBOTのプロセスも終了してしまう

Linuxにはバックグラウンドでコマンド実行をする手法が存在します。

【 & 】 コマンドをバックグラウンドで実行する
【 nohup 】 ログアウトした後もコマンドを実行し続ける

2、SSH接続を一度切断すると元のCUI画面へ戻れない

tmuxというCLIツールを導入しましょう。
SSHで作った一時的なユーザではなく、CentOS上の1ファイルとしてセッションが存在するようになりますので、
SSHの接続が途切れてもtmux a -s セッション名で復帰出来るようになります。
Windowsマシンで途中まで作業を行って、翌日MacからSSHで接続してtmuxのセッションを引き継いで作業の続きを行うということも可能です。

この手法なら前述のバックグラウンドでコマンド実行をする手法は必須ではありませんね。

投稿2018/01/25 09:45

miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

miyabi-sun

2018/01/25 09:46

sublimerさんが紹介しているscreenはtmuxのライバル的なCLIツールです。 好きな方を利用してください。
yushistr

2018/01/25 10:04

ありがとうございます。 早速試させていただきます。
guest

0

screenコマンドを使用すると、SSH切断後も、プログラムを実行させ続けることができます。
https://qiita.com/IshitaTakeshi/items/531e4c9c1782a7549a62#screeen

投稿2018/01/25 09:43

sublimer

総合スコア403

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sublimer

2018/01/25 09:48

miyabi-sunさんが回答されているように、screenコマンド以外にも方法があります。 方法は1つではないので、お好みで選んでいただければと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問