お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2014-04-29 13:16:17

Rammellzee
新しいメンバ
登録日: 2014-04-29

Linux起動時にプログラムを自動実行したい。

サーバーに対して接続後、10秒に1回毎に1kbyte程度のパケットをTCP通信で送信して、サーバーとの通信が断線していないかをチェックするようなプログラムを作成しました。

このプログラムをUbuntuを起動したら自動的にこのプログラムの実行ファイルを起動できるようにしたいと思っています。


http://hisk2tmem.blog61.fc2.com/blog-entry-11.html
こちらのサイトで


/etc/rc.local

このファイルに起動させたいファイルのパスを書けば起動してくれると言うことで、

次のようにrc.localに

”/root/20140411/test_client”

というファイルパスを書いてみました。

root@ubuntu:/etc# cat rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

/root/20140411/test_client

exit 0



これで、Ubuntuを再起動してみたのですが、

/root/20140411/test_client

このプログラムが起動していないようで、サーバーへ接続されてきません。


この自動機能の設定は間違っていますでしょうか?
アドバイスをご教示頂きますよう、お願い致します。

オフライン

 

#2 2014-04-30 01:16:36

hellfire
メンバ
From: 日本/神奈川県
登録日: 2006-11-21

Re: Linux起動時にプログラムを自動実行したい。

Rammellzee 様へ。

このプログラムはサーバのように、ユーザがログインしなくても
実行するようにしたいのでしょうか?


もし、ログイン後に自動で実行したい場合は、
~/.config/autostart に実行ファイルに関する desktop ファイルを
置いての実行がいいと思います。
GUI での操作ならば、以下のサイトを参考にしてみて下さい。
http://ubuntu.firebird.jp/archives/4306


もし、サーバのようにログインしないで実行したい場合は、
以下のことを確認してみて下さい。
* 作成したプログラムは、普通に実行した場合に動作しますか?
* /root/20140411/test_client に本当にプログラムは存在しますか?
* タイミング的にネットワークが確立する前に実行されている可能性があるので、
 確立した状態を把握してから実行するようにするか、少し時間をおいて
 実行するようにプログラムを変更する。


ご参考までに。

オフライン

 

#3 2014-05-01 18:24:28

Rammellzee
新しいメンバ
登録日: 2014-04-29

Re: Linux起動時にプログラムを自動実行したい。

hellfire 様

回答頂きありがとうございます。

今回作成しているプログラムはログイン時に起動ではなく、電源投入時に自動的に起動したいと考えております。


TCP通信の断線監視プログラムですがこちらのプログラムを使用しています。

http://sourceforge.jp/projects/cc1101driver/scm/svn/blobs/head/trunk/20140411/test_client.c

実際に自分のUbuntu PCでコンパイルしてサーバーに対してパケットを送信する動作を確認しています。


電源投入時のTCP通信のタイミングを考えなければならない場合にこちらのプログラミングに追加した方が良いプログラムなど教えて頂けないでしょうか。

どうぞご教示の程よろしくお願い致します。

オフライン

 

#4 2014-05-01 18:57:53

yama
メンバ
登録日: 2006-10-23

Re: Linux起動時にプログラムを自動実行したい。

ネットの監視ならば
/etc/network/if-up.d/
に放り込んでおけばよいかと。

オフライン

 

#5 2014-05-03 15:31:29

Rammellzee
新しいメンバ
登録日: 2014-04-29

Re: Linux起動時にプログラムを自動実行したい。

yama様

回答頂きありがとうございます。

次のようなスクリプトファイルを"test_client_sh"という名前で作成しました。

#!/bin/sh -e
/root/20140411/test_client


そして、test_client_shファイルを”/etc/network/if-up.d/”こちらのパスのフォルダに配置してrebootしてみたのですが、サーバーには接続しに来ない状態です。

このtest_clientというプログラムが動作しているのかどうかを確認する方法などありますでしょうか?
また、自動起動できるような解決方法をさらに教えて頂けませんでしょうか?

どうぞ、ご教示頂きますようお願い致します。

オフライン

 

#6 2014-05-03 19:23:03

STGSAGWAN
ゲスト

Re: Linux起動時にプログラムを自動実行したい。

upstartでやるのがよいと思います。

 

Board footer

Powered by FluxBB